【问题标题】:Basic BPMN question: Activiti with Spring boot基本 BPMN 问题:Activiti with Spring boot
【发布时间】:2020-07-24 23:47:43
【问题描述】:
所以昨天我开始用 Spring Boot 学习 Activiti。
网上有很多教程,其中
- 创建一个将用户保存到 DB 的函数。
- 创建任务的 BPMN 文件。
- 创建一个控制器来启动、监控和结束任务。
假设我的工作流程中只有一项任务,即向用户发送电子邮件。
所以,问题是,我无法理解 我需要在哪里编写发送电子邮件的代码
基本上,一旦我开始一个任务,它将执行哪些代码?
我搜索了整个互联网,但找不到任何解决方案。我完全是这方面的初学者。
我们将不胜感激。
【问题讨论】:
标签:
spring-boot
workflow
activiti
bpmn
【解决方案1】:
1. Use below content for your bpmn.xml file as per requirement,
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="Examples">
<process id="oneTaskProcess" name="The Email task">
<startEvent id="theStart" />
<sequenceFlow id="flow1" sourceRef="theStart" targetRef="emailTask" />
<serviceTask id="emailTask"
name="Email task service invocation"
activiti:class="com.mycompany.SendEmail">
</serviceTask>
<sequenceFlow id="flow2" sourceRef="emailTask" targetRef="theEnd" />
<endEvent id="theEnd" />
</process>
</definitions>
2.Create a service task using java as below,
package com.mycompany.SendEmail;
public class SendEmail implements ActivityBehavior {
@Override
public void execute(ActivityExecution execution) throws Exception {
PvmTransition transition = null;
// do your business logic.
try{
transition = execution.getActivity().findOutgoingTransition("theEnd");
}catch (Exception e){
//do nothing
}
execution.take(transition);
}
}