2023年8月1日发(作者:)
Activiti6.0学习笔记⼀、运⾏官⽅例⼦
⼯作流平台:localhost:8080/activiti-app admin test管理平台:localhost:8080/activiti-admin admin admin
⼆、流程引擎配置1、指定⾃⼰的配置⽂件ProcessEngineConfiguration processEngineConfiguration =
ProcessEngineConfigurationFromResource("");ProcessEngineConfiguration processEngineConfiguration =
ProcessEngineConfigurationFromResource("", "beanName");2、数据库更新策略3、历史配置等
三、组件RepositoryService:管理流程定义,流程部署。RuntimeService:流程运⾏时,对管理流程实例。TaskService:管理流程任务,如任务提醒、任务完成、创建任务、分配任务。IdentityService:管理流程⾓⾊数据,包括⽤户组、⽤户以及它们之间的关系。ManagementService:管理、维护流程引擎。HistoryService:操作流程的历史数据,包括查询、删除这些历史数据。DynamicBpmnService:使⽤该服务,可以不需要重新部署流程模型,就可以实现对流程模型的部分修改。
三、表设计ACT_GE(general):通⽤数据ACT_GE_BYTEARRAY:流程图、流程流、流程过程中的图ACT_GE_PROPERTY:activiti内置数据ACT_RE(repository):保存流程定义、部署信息ACT_RE_DEPLOYMENT:⼀次部署可能包含多个流程ACT_RE_PROCDEF:流程定义表ACT_ID(identity):⾝份数据表,没有与流程做关联ACT_ID_USER:⽤户表ACT_ID_GRUP:分组表ACT_ID_MEMBERSHIP:⽤户分组表ACT_ID_INFO:保存⽤户账号、⽤户信息 (type: account, userinfo, NULL,patient_id:⾃关联),类似EVA,⼀条userinfo表⽰⼀个column。ACT_RU(runtime):保存流程运⾏时的数据,流程实例、执⾏流、任务、参数等ACT_RU_EXECUTION:保存流程实例,执⾏流ACT_RU_TASK:任务表ACT_RU_VARIABLE:任务参数、流程参数ACT_RU_IDENTITYLINK:流程任务与⾝份的关系表ACT_RU_JOB:⼀般⼯作表ACT_RU_TIMER_JOB:定时执⾏⼯作表ACT_RU_SUSPENDED_JOB:中断⼯作表ACT_RU_DEADLETTER_JOB:⽆法执⾏的⼯作表ACT_RU_EVENT_SUBSCR:事件描述表,流程到达事件节点写⼊事件数据ACT_HI(history):历史数据表,跟运⾏时相对应ACT_HI_PROCINST:流程实例的历史数据ACT_HI_TASKINST:历史任务表,流程到达某个任务点时写⼊数据ACT_HI_VARINST:历史参数表ACT_HI_ACTINST:历史⾏为表,追踪完整流程信息ACT_HI_ATTACHMENT:附件表ACT_HI_COMMENT:评论表ACT_DMN:activiti⾃带规则引擎的表
四、查询createXxxQuery()Query:asc()desc()count()list()listPage()singleResult() 五、流程部署查询流程⽂件/图删除部署资源
六、流程定义中⽌、激活
七、任务任务⾓⾊:任务候选⼈(组)任务持有⼈任务代理⼈
te
任务参数设置和获取任务参数本地参数:作⽤域本流程节点。iableLocal,te之后,重新查询出task的对应variable为空全局参数:作⽤域整个流程。iable 或者 配置
⼋、执⾏流Execution <— ProcessInstance主执⾏流,⼦执⾏流(当前产⽣的分⽀)可以根据任务获取执⾏流
启动流程rocessInstanceByMessage
流程参数本地参数:iableLocal全局参数:iable
九、receiveTaskreceiveTask⽤trigger,onlyChildExecutions查找⼦执⾏流
signal信号事件:⼴播捕获事件:添加信号事件配置
message消息事件:订阅投递捕获事件:添加消息事件配置
⼗、serviceTask⼯作异步任务配置异步执⾏器asyncExecutorActivate为true配置
⼗⼆、任务ServiceTask分类Java Service Taskactiviti:class指定的类为JavaDelegate ActivityBehavior的实现类activiti:delegateExpression="${myDelegation}"且设置参数,其类需实例化activiti:expression="${(execution)}" 或 sion="${iable('myName',)}"Shell TaskJava执⾏shell脚本⽅式sBuilderactiviti扩展配置 activiti:type="shell",可以配置输⼊参数及输出结果到流程实例参数Web Service TaskSendTask邮件任务activiti:type="mail"并配置发、收邮件信息发邮件需配置activiti的bean的mail属性ReceiveTask类似捕获事件rUserTask候选⼈(⽤户、⽤户组)、代理⼈(⼀个代理⼈)设置权限⽅法可在xml按照BPMN规范配置或者可在xml按照activiti扩展配置或者可⽤api设置或者在任务监听器(xml配置)⾥⽤api设置或者JUEL在xml⾥结合activiti扩展配置进⾏动态配置(流程定义时,调⽤的实例需参数化,其类需序列化)ManualTask类似抛出事件BusinessRuleTaskScriptTask
⼗三、监听器任务监听器(activiti扩展,⽤于UserTask)
指定⽅式class="" activiti配置activiti:taskListener监听类及监听触发条件event,监听类需实现TaskListenerdelegateExpression="${myDelegation}",需实现序列化和TaskListenerexpression="${an(task)}",实现序列化,不需实现TaskListener
eventcreate ⽤户任务产⽣时assignment ⽤户任务指定代理⼈时complete ⽤户任务完成时
给监听器注⼊参数
流程监听器
⼗四、⼦流程嵌⼊式⼦流程调⽤式⼦流程(适⽤于有公共流程)(若⼀个⼦流程,因为两个流程则产⽣四条执⾏流)ProcessInstanceQuery().superProcessInstanceId()输⼊参数,输出参数事件⼦流程:由各种事件触发的⼦流程可终⽌的事件⼦流程不可终⽌的事件⼦流程事务⼦流程也是⼀种嵌⼊式⼦流程,触发补偿特殊⼦流程⼦流程内任务没有特定顺序(配置【并⾏】或者 【按顺序但不由配置指定⽽是由API指定】),多个执⾏流
⼗五、顺序流、⽹关顺序流
条件顺序流源:⽹关、流程活动配置在
默认顺序流不配置条件如果是多个默认顺序流都满⾜呢?
⽹关单向⽹关就是普通的条件顺序流并⾏⽹关分叉、合并,没有条件兼容⽹关可以单向、可以并⾏事件⽹关哪个事件先触发就触发哪个事件的流程组合⽹关activiti6.0不⽀持
⼗六、流程活动多实例活动
⼗七、Drools规则引擎:关注业务规则的匹配关键字package, rule, when, then, function
全局变量 global
规则属性activation-group "xxx" 规则分组salience 10 优先级条件语法when 后⾯ && ||⾏为语法then向WorkingMemory insert update delete
与Activiti整合:1、activiti配置处配置规则部署器2、bpmn⽂件配置输⼊、输出参数3、部署bpmn时加载bpmn配置⽂件和drools配置⽂件
⼗⼋、DMN(Decision Model and Notation)规范:定义规则引擎的规范,定义决策模型
DMN框架类似activiti,配置dmn,编写dmn配置⽂件,部署,启动及使⽤DMN API
⼗九、MVEL表达式简单参数表达式对象执⾏表达式⾃定义函数表达式
⼆⼗、部署并修改数据库
⼆⼗⼀、Activiti表单⽅法⼀:taskService根据流程定义查询出配置的多个表单字段,可以遍历显⽰到页⾯,达到动态表单的效果。⽅法⼆:配置⽂件引⽤外部表单
⼆⼗⼆、流程图与流程操作流程图节点:⼀个位置信息衔接:两个位置信息
(还需要)BpmnXMLConverter可以通过代码的⽅式⽣成xml配置(包含process和diagram)
流程操作
流程回退⽅法⼀:业务处理⽅法⼆:补偿事件会签(按数量通过、按⽐例通过、⼀票否决、⼀票通过)多实例,设置不同完成条件
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690873696a452119.html
评论列表(0条)