如何将一个任务分配给多个人?

icesky_2007 2007-06-15
如下:我是想将任务(主管审批)分派给指定的用户
<task-node name="主管审批">
      <task name="主管审批">
         <assignment class="com.myrequest.task.ChiefSwimlane"/>
      </task>
   </task-node>

类ChiefSwimlane具体实现如下:
public void assign(Assignable assignable, ExecutionContext executionContext)
            throws Exception
    {
        // TODO Auto-generated method stub
        //String userid = (String) executionContext.getContextInstance()
                .getVariable(RequestVariable.userId);
        String chiefId = null;
        assignable.setActorId(chiefId);
        String[] chiefIds = {"manager","boss","admin"};
        assignable.setPooledActors(chiefIds);
    }
除了以上文件需要改动还有其他地方需要设置嘛?为什么我运行结果并没有把"主管审批"任务分派给"manager","boss","admin"这些用户,并且后台日志输出"(org.jbpm.webapp.bean.TaskBean:212) - assignmentlogs: [task-assign[null,TaskInstance[主管审批]], task-assign[admin,TaskInstance[取消请假]]]",请.
icesky_2007 2007-06-15
212) - assignmentlogs: [task-assign[null,TaskInstance[主管审批]]其中分配的用户为null.请,先谢过!`
icesky_2007 2007-06-15
待..
gsccnu 2007-06-15
你的
String chiefId = null;
assignable.setActorId(chiefId);
这两句是没必要的,通过setPooledActors(chiefIds)后,再用TaskMgmtSession.findPooledTaskInstances(actorIds)得到该任务,但在让用户操作前,应该先通过setActorId(chiefId)将该任务assign给该用户,这样其他人再使用findPooledTaskInstances就看不该任务了。
icesky_2007 2007-06-15
非常感谢你的帮助,我应该在哪里用"TaskMgmtSession.findPooledTaskInstances(actorIds)得到该任务"呢?你后面的意思是说我分派认为给多个人之后,在其中有一人执行该任务之间需要将任务从新分配那个指定的用户,这样其他人就看不到那个已经执行过的那个任务了?我理解的正确吗
gsccnu 2007-06-15
在执行任务之前,将findPooledTaskInstances找到的任务assign给某个人。然后这个人就能在自己的tasklist中找到该任务,其他人再调用findPooledTaskInstances将看不到该任务。
Global site tag (gtag.js) - Google Analytics