我对于activiti相对较新我想知道是否有任何方法可以使用java代码在activiti explorer中部署甚至启动进程,即运行java应用程序为kermit创建任务然后登录到activiti explorer并完成它..
答案 0 :(得分:1)
当然,这可以通过Activiti REST API和Activiti Java API实现。
如果要在自己的java应用程序中启动进程,可以设置java maven项目并导入必要的Activiti API(http://activiti.org/community.html)
Activiti Explorer包含自己的Activiti Process Engine实例。您的应用程序也有自己的实例。两种应用程序共享相同的数据库(例如MySQL)是一种常见的方法
看一下这本照片取自Book" Activiti in Action":
对于Activiti Java API,请查看Activiti Java指南:http://activiti.org/javadocs/
要开始一个过程,您可以像这样使用RuntimeService
:
ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault()
.buildProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("processId");
让我们假设您将第一个Task定义为UserTask,并将kermit作为受让人。执行java代码后,Kermit可以登录Activiti Explorer,他将看到他的任务。为此,两个应用程序必须共享同一个数据库。
也可以部署流程定义。查看RepositoryService。
答案 1 :(得分:0)
正如@Ben所解释的那样,与流程引擎交互的关键通常是决定流程引擎是否在与应用程序相同的流程中引导,或者它是否已在运行 在另一个提供REST API(活动休息Web应用程序)或其他可能无法直接提供的Web应用程序的Web应用程序中 REST API但可用于通过UI执行许多与工作流相关的任务(Activiti explorer Web应用程序可能使用直接的activiti java API进行交互)。这样Activiti非常灵活。