`

JBPM3中文用户手册——第三章:教程(4)

阅读更多

3.1    任务分配示例

下一个例子,我们将展示给你如何分配任务给用户。由于jbpm工作流引擎与组织模型是分开的,仅有用于计算用户标识号的表达式语言经常是不够的。因此,你必须指定一个AssignmentHandler接口的实现,其中包含对任务参与者的计算。

 

public void testTaskAssignment() {

  // The process shown below is based on the hello world process.

  // The state node is replaced by a task-node.  The task-node

  // is a node in JPDL that represents a wait state and generates

  // task(s) to be completed before the process can continue to

  // execute. 

  ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(

    "<process-definition name='the baby process'>" +

    "  <start-state>" +

    "    <transition name='baby cries' to='t' />" +

    "  </start-state>" +

    "  <task-node name='t'>" +

    "    <task name='change nappy'>" +

    "      <assignment class='org.jbpm.tutorial.taskmgmt.NappyAssignmentHandler' />" +

    "    </task>" +

    "    <transition to='end' />" +

    "  </task-node>" +

    "  <end-state name='end' />" +

    "</process-definition>"

  );

 

  // Create an execution of the process definition.

  ProcessInstance processInstance =

      new ProcessInstance(processDefinition);

  Token token = processInstance.getRootToken();

 

  // Let's start the process execution, leaving the start-state

  // over its default transition.

  token.signal();

  // The signal method will block until the process execution

  // enters a wait state.   In this case, that is the task-node.

  assertSame(processDefinition.getNode("t"), token.getNode());

 

  // When execution arrived in the task-node, a task 'change nappy'

  // was created and the NappyAssignmentHandler was called to determine

  // to whom the task should be assigned.  The NappyAssignmentHandler

  // returned 'papa'.

 

  // In a real environment, the tasks would be fetched from the

  // database with the methods in the org.jbpm.db.TaskMgmtSession.

  // Since we don't want to include the persistence complexity in

  // this example, we just take the first task-instance of this

  // process instance (we know there is only one in this test

  // scenario).

  TaskInstance taskInstance = (TaskInstance) 

      processInstance

        .getTaskMgmtInstance()

        .getTaskInstances()

        .iterator().next();

 

  // Now, we check if the taskInstance was actually assigned to 'papa'.

  assertEquals("papa", taskInstance.getActorId() );

 

  // Now we suppose that 'papa' has done his duties and mark the task

  // as done.

  taskInstance.end();

  // Since this was the last (only) task to do, the completion of this

  // task triggered the continuation of the process instance execution.

 

  assertSame(processDefinition.getNode("end"), token.getNode());

}

 

 

分享到:
评论

相关推荐

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    JBPM采购申请系统——05_构建JBPM数据库.7z

    JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...

    JBPM采购申请系统——02_Eclipse与JBPM.7z

    JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z ...

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...

    jBPM 4.4中文用户手册

    jBPM 4.4用户手册 翻译官方文档 JBoss jBPM Teams 4.4 译者: Lingo 首页: http://www.family168.com/ 论坛: http://old.family168.com/bbs EMAIL: lingosurf168@gmail.com 2009年11月1日 1. 导言 1.1. 许可...

    JBPM采购申请系统——12_JBPM异步(一).7z

    JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM...

    JBPM采购申请系统——13_JBPM异步(二).7z

    JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM...

    JBPM采购申请系统——07_JBPM中的脚本语言.7z

    JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM...

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_...

    jBPM4.1中文用户手册.pdf

    根据提供的文件信息,我们可以推断出这是一份关于jBPM 4.1版本的中文用户手册。jBPM(Java Business Process Management)是一个开源的工作流引擎,用于自动化业务流程。接下来,我们将从标题、描述、标签以及部分...

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一)...

    JBPM采购申请系统——11_讲任务调度.7z

    JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请...

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请...

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请...

    JBPM采购申请系统——16_JBPM开发报销系统(三).7z

    JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请...

    JBPM采购申请系统——18_JBPM采购申请系统(二).7z

    JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请...

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请...

    JBPM采购申请系统——14_JBPM开发报销系统(一).7z

    JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请...

    JBPM采购申请系统——23_综合技术应用.7z

    JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM...

Global site tag (gtag.js) - Google Analytics