Activiti之流程引擎的API和服务

2023-10-12 13:55:18 浏览数 (2)

流程引擎的API和服务

引擎API是与Activiti打交道的最常用方式。 从ProcessEngine中,你可以获得很多囊括工作流/BPM方法的服务。 ProcessEngine和服务类都是线程安全的。 你可以在整个服务器中仅保持它们的一个引用就可以了。

代码语言:javascript复制
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
HistoryService historyService = processEngine.getHistoryService();
FormService formService = processEngine.getFormService();
  1. RepositoryService 管理流程定义 :提供了管理和控制发布包和流程定义的操作。
    • 查询引擎中的发布包和流程定义。
    • 暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。
    • 获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。
    • 获得流程定义的pojo版本, 可以用来通过java解析流程,而不必通过xml。
  2. RuntimeService 执行管理
    • 负责启动一个流程定义的新实例
    • 用来获取和保存流程变量,这些数据是特定于某个流程实例的,并会被很多流程中的节点使用 (比如,一个排他网关常常使用流程变量来决定选择哪条路径继续流程)
    • 能查询流程实例和执行
    • 可以在流程实例等待外部触发时使用,这时可以用来继续流程实例
  3. TaskService 管理任务 任务是由系统中真实人员执行的,它是Activiti这类BPMN引擎的核心功能之一。 所有与任务有关的功能都包含在TaskService中
    • 查询分配给用户或组的任务
    • 创建独立运行任务。这些任务与流程实例无关。
    • 手工设置任务的执行者,或者这些用户通过何种方式与任务关联。
    • 认领并完成一个任务。认领意味着一个人期望成为任务的执行者, 即这个用户会完成这个任务。完成意味着“做这个任务要求的事情”。 通常来说会有很多种处理形式。
  4. IdentityService 管理组织机构 非常简单。它可以管理(创建,更新,删除,查询…)群组和用户
  5. FormService 管理任务表单 提供了启动表单和任务表单两个概念。 启动表单会在流程实例启动之前展示给用户, 任务表单会在用户完成任务时展示
  6. HistoryService 管理历史 提供了Activiti引擎手机的所有历史数据。 在执行流程时,引擎会保存很多数据(根据配置),比如流程实例启动时间,任务的参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个服务主要通过查询功能来获得这些数据。
  7. ManagementService 在使用Activiti的定制环境中基本上不会用到。 它可以查询数据库的表和表的元数据。另外,它提供了查询和管理异步操作的功能。 Activiti的异步操作用途很多,比如定时器,异步操作, 延迟暂停、激活,等等

参考: Activiti中文手册: http://www.mossle.com/docs/activiti/index.html

0 人点赞