前提
在一个Group(G1)下有若干个用户(例如:A/B/C/D),流程的活动Act1是Map到G1上的。当流程执行到Act1的时候,A/B/C/D都能看到同一个Assignment(As1)。
结果
在worklist程序中,如果A执行了Accept操作, B/C/D就不能看到As1。如果B的worklist没有刷新,还能看到As1,那么B执行Accept操作的时候会弹出提示而不能继续执行。此时,B通过sConn.getResourceObject().get_iterator_work_item()也得不到As1,而A能够得到。
Accept操作之前,数据库Activities.ResourceId=null;Activities.State=1000003(open.not_running.not_started);AssignmentsTable中有4条记录,这4条记录的AssignmentsTable. Activity相同,AssignmentsTable. ResourceId分别是A/B/C/D。
Accept操作之后,如果是用户A执行的,数据库Activities.ResourceId=A;Activities.State=1000001(open.running);AssignmentsTable 中只剩下AssignmentsTable. ResourceId=A的一条记录(前提是SharkKernel.deleteOtherAssignments=true;该参数在shark.conf中设置)。
Accept操作的前后,Processes. State=1000000(open.running)。