`
lan13217
  • 浏览: 482371 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jbpm 4.3中一些概念

    博客分类:
  • jpbm
 
阅读更多
1,流程定义(ProcessDefinition):对整个流程步骤的描述.,相当于我们在编程过程过程用到的类,是个抽象的概念.

2.流程实例(ProcessInstance)代表着流程定义的特殊执行例子,相当于我们常见的对象.他是类的特殊化.

最典型的属性就是跟踪当前节点的指针.

3.流程引擎(ProcessEngine), 服务接口可以从ProcessEngine中获得, 它是从Configuration构建的,如下:

ProcessEngine processEngine = new Configuration()
      .buildProcessEngine();


从流程引擎中可以获得如下的服务:

RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();


4.部署流程(Deploying a process):

RepositoryService包含了用来管理发布资源的所有方法,

如下可以发布流程定义.

String deploymentid = repositoryService.createDeployment()
    .addResourceFromClasspath("*.jpdl.xml")
    .deploy();

这个id的格式是(key)-{version}.
5.删除流程定义:
repositoryService.deleteDeployment(deploymentId);
可以用级联的方式,也可以remove

6.启动一个新的流程实例:





ProcessInstance processInstance = executionService.startProcessInstanceByKey("key");


如果启动指定版本的流程定义,用下面的方法:

ProcessInstance processInstance =executionService.startProcessInstanceById("ID");

7.使用变量

当一个新的流程实例启动时就会提供一组对象参数。 将这些参数放在variables变量里, 然后可以在流程实例创建和启动时使用。

Map<String,Object> variables = new HashMap<String,Object>();
variables.put("customer", "John Doe");
variables.put("type", "Accident");
variables.put("amount", new Float(763.74));

ProcessInstance processInstance =
    executionService.startProcessInstanceByKey("ICL", variables);

8.执行等待的流向:
当使用一个state活动时,执行(或流程实例) 会在到达state的时候进行等待,
直到一个signal(也叫外部触发器)出现。 signalExecution方法可以被用作这种情况。
执行通过一个执行id(字符串)来引用。
executionService.signalExecutionById(executionId);

9.TaskService任务服务:
TaskService的主要目的是提供对任务列表的访问途径。 例子代码会展示出如何为id为johndoe的

用户获得任务列表:

List<Task> taskList = taskService.findPersonalTasks("johndoe");

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics