Activiti7工作流引擎:高阶篇 MailTask
Posted vbirdbest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activiti7工作流引擎:高阶篇 MailTask相关的知识,希望对你有一定的参考价值。
MailTask 是自动执行的。
一:开启POP3/SMTP/IMAP
二:定义bpmn
三:application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
username: root
password: root123
driver-class-name: com.mysql.cj.jdbc.Driver
activiti:
#1.flase:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
#2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
#3.create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
#4.drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
database-schema-update: true
#检测历史表是否存在 activiti7默认没有开启数据库历史记录 启动数据库历史记录
db-history-used: true
#记录历史等级 可配置的历史级别有none, activity, audit, full
#none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
#activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
#audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
#full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
history-level: full
#校验流程文件,true表示自动部署resources下的processes文件夹里的流程文件
check-process-definitions: true
use-strong-uuids: false
mail-server-host: smtp.163.com
mail-server-port: 994
mail-server-default-from: vbirdbest@163.com
mail-server-user-name: vbirdbest@163.com
# 注意这里的密码不是邮箱的登录密码, 邮箱客户端授权码
mail-server-password: HERBWQJNKLEFDAWVGJA
mail-server-use-ssl: true
四:Test
@Test
void testStartAndComplete()
runtimeService.startProcessInstanceByKey("mailTaskProcess");
actiBPM 这个插件有很大的问题,竟然把表达式当做普通的字符串了,所以要使用文本编辑器打开后手动将string替换为expression。2014年的插件,这都22年了,8年都不更新,自取灭亡,难怪作者要提桶跑路。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions>
<process id="mailTaskProcess" isClosed="false" isExecutable="true" name="邮件任务工作流" processType="None">
<startEvent id="_2" name="StartEvent"/>
<serviceTask activiti:exclusive="true" activiti:type="mail" id="_3" name="MailTask">
<extensionElements>
<activiti:field name="charset">
<activiti:expression>UTF-8</activiti:expression>
</activiti:field>
<activiti:field name="to">
<activiti:expression>$to</activiti:expression>
</activiti:field>
<activiti:field name="from">
<activiti:expression>$from</activiti:expression>
</activiti:field>
<activiti:field name="subject">
<activiti:expression>$subject</activiti:expression>
</activiti:field>
<activiti:field name="text">
<activiti:expression>$text</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<endEvent id="_4" name="EndEvent"/>
<sequenceFlow id="_5" sourceRef="_2" targetRef="_3"/>
<sequenceFlow id="_6" sourceRef="_3" targetRef="_4"/>
</process>
</definitions>
@Test
void testStartAndComplete()
Map<String, Object> variables = new HashMap<>();
variables.put("from", "vbirdbest@163.com");
variables.put("to", "vbirdbest@163.com");
variables.put("subject", "Hello World");
variables.put("text", "亲爱的儿子,你好呀!");
runtimeService.startProcessInstanceByKey("mailTaskProcess", variables);
以上是关于Activiti7工作流引擎:高阶篇 MailTask的主要内容,如果未能解决你的问题,请参考以下文章
Activiti7工作流引擎:高阶篇 ProcessDefinitionUtil