Flowable Process Engine API and services
阅读数:130 评论数:0
跳转到新版页面分类
python/Java
正文
https://www.flowable.com/open-source/docs/bpmn/ch04-API
Process Engine API是与Flowable的主要交互方式,通过ProcessEngine可以获取各种包含工作流方法的服务,ProcessEngine是线程安全的。
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();
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
ProcessEngines.getDefaultProcessEngine()会创建并初始化一个process engine,可以使用ProcessEngines.init()和ProcessEgnines.destroy()初始化和关闭所有的process engines。
ProcessEngines会扫描所有的flowable.cfg.xml和flowable-context.xml文件,对于flowable.cfg.xml文件,会使用flowable的方式创建process engine:
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream).buildProcessEngine();
对于flowable-context.xml文件,使用spring方式创建process engine:
即先创建spring context,然后从context中获取 process engine。
所有的服务都是无状态的。
RepositoryService用于流程的定义的部署,另外它还可以:
(1)查询工作流引擎上已知的流程定义。
(2)暂停或激活流程部署。
(3)获取各种资源
(4)获取流程定义的POJO版本。
相对于RepositoryService关注的大多为静态信息不同,RuntimeService更多关注于动态信息。它可以启动一个流程的实现,它也可以用于获取或存储流程实例的变量,当然它也可以用于查询实例。
任务是需要人工干预的抽象体,所有与任务相关的操作大都存在于TaskService。
HistoryService用于历史数据查询。