首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Activiti REST部署动态创建的BPMN模型

使用Activiti REST部署动态创建的BPMN模型
EN

Stack Overflow用户
提问于 2016-01-27 11:27:35
回答 2查看 1.8K关注 0票数 0

我对Activiti很陌生。我正在从事一个项目,在这个项目中,我应该能够使用spring动态地创建流程。我已经过了http://stacktrace.be/blog/2013/03/dynamic-process-creation-and-deployment-in-100-lines/

是否可以直接使用REST部署动态创建的流程,或者应该创建bpmn-20.xml并进行部署。此外,是否有创建复杂流程的示例,例如动态使用边界事件。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-29 15:27:51

通过这个端点/activiti-rest/service/deployment是可能的!请查看这个论坛帖子以获得更多信息+示例代码。

您不必真正在磁盘上创建文件,只需使用某种类型的InputStream来模拟它:

代码语言:javascript
复制
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("deployment", new ByteArrayInputStream((<put-something-here>).toByteArray()), ContentType.DEFAULT_BINARY,"test.bpmn20.xml")
票数 1
EN

Stack Overflow用户

发布于 2019-05-18 17:44:20

下面是将.bpmn文件内容上传为字符串并同时启动进程的代码:

代码语言:javascript
复制
@Autowired
private RuntimeService runtimeService;

@PostMapping("/deployAndStartProcess")
public void deployAndStartProcess(@RequestBody DeployWorkflow dw, @RequestParam(required = false) HashMap<String, Object> variables) {
  String processXml = dw.getBpmnFile();
  String processId = dw.getProcessKey();
  ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment().name(processId);
  deploymentBuilder.addString(processId + ".bpmn", processXml);
  deploymentBuilder.deploy();
  runtimeService.startProcessInstanceByKey(processId, variables);
}

参考资料:看看heymjo在最后的回答

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35036076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档