Flowable 6.4.2版本总结

名词:

      部署(Deployment),执行(Execution),组(Group),身份关联(IdentityLink),作业(Job),模型(Model),流程定义(ProcessDefinition),流程实例(ProcessInstance),任务(Task),用户(User),附件(Attachment),备注(Comment)。

核心API:
1、RepositoryService:这个服务提供了管理与控制部署(deployments)与流程定义(process definitions)的操作
2、RuntimeService:用于启动流程定义的新流程实例,也用于读取与存储流程变量
3、TaskService中:
例如:
查询分派给用户或组的任务
创建独立运行(standalone)任务。这是一种没有关联到流程实例的任务。
决定任务的执行用户(assignee),或者将用户通过某种方式与任务关联。
认领(claim)与完成(complete)任务。认领是指某人决定成为任务的执行用户,也即他将会完成这个任务。完成任务是指“做这个任务要求的工作”,通常是填写某个表单。
4、IdentityService很简单。它用于管理(创建,更新,删除,查询……)组与用户。请注意,Flowable实际上在运行时并不做任何用户检查。例如任务可以分派给任何用户,而引擎并不会验证系统中是否存在该用户。这是因为Flowable有时要与LDAP、Active Directory等服务结合使用。
5、HistoryService暴露Flowable引擎收集的所有历史数据。当执行流程时,引擎会保存许多数据(可配置),例如流程实例启动时间、谁在执行哪个任务、完成任务花费的事件、每个流程实例的执行路径,等等。这个服务主要提供查询这些数据的能力。
6、DynamicBpmnService可用于修改流程定义中的部分内容,而不需要重新部署它。例如可以修改流程定义中一个用户任务的办理人设置,或者修改一个服务任务中的类名。


事件:
1、定时器事件: 
在这个时间就会触发触发器
需要等待多长时间再触发
指定重复周期,可用于周期性启动流程,或者为超期用户任务多次发送提醒
2、错误事件
抛出事件,流程失败,抛出异常给父进程接收
3、信号事件
抛出信号,信号订阅,执行操作。类似于消息队列的广播功能。可以具有全局性,也可以单流程实现。
4、消息事件
类似于消息队列的发布订阅功能。需要自己接入。
5、启动事件
错误启动事件,可用于触发事件子流程
6、边界事件
捕获型事件,依附在活动(activity)上。这意味着当活动运行时,事件将监听特定类型的触发器。当捕获到事件时,会终止活动,并沿该事件的出口顺序流继续,
1、定时器边界可以不终止活动,例子:执行正常流程并且走定时发送邮件流程。
2、错误边界例子:主流程做子流程,子流程挂上错误边界事件,子流程错误捕获后,重启子流程。 
3、信号边界:信号边界事件为全局范围(广播)的,意味着信号可以从任何地方抛出,如果有两个激活的信号边界事件,捕获相同的信号事件,则两个边界事件都会被触发。
4、消息边界事件:发布订阅--->收到消息后可中断或非中断当前流程,并且进入边界流程
5、取消边界事件:在事务取消时触发。当取消边界事件触发时,首先会中断当前范围的所有活动执行。接下来,启动事务范围内所有有效的的补偿边界事件补偿会同步执行,也就是说在离开事务前,边界事件会等待补偿完成。当补偿完成时,沿取消边界事件的任何出口顺序流离开事务子流程。
6、补偿边界事件:直接关联的方式引用单个的补偿处理器,活动成果完成时创建订阅,订阅被消费后或者流程引擎结束后取消。关联取消边界事件使用。
7、捕获中间事件
流程连线中间节点,分不同情况触发。

顺序流:
1、流程间连线,支持表达式判断条件。

2、默认流:解决一条路线都无法找到的问题,如果所有路线规则都不通过,则走默认流。(报错时不走)

网关:
1、排他网关
按照所有出口顺序流定义的顺序对它们进行计算,true则继续走流程
2、并行网关
顺序流不计算条件,利用角色执行活动,下一步网关等待所有并行活动执行完后发布出口顺序流
3、包容网关
排他网关+并行网关,在并行网关顺序流上面加上条件执行。只需要其中一条并行活动通过即可。 
4、基于事件的网关
用事件触发流程引擎,例子:路线1定时器10分钟,路线2信号事件,如果信号事件触发,则流程通过。如果10分钟没触发信号事件则走路线1。

任务:
1、用户任务
对于需要人工执行的任务建模,支持人和用户组权限控制
2、脚本任务
支持js脚本 
2、Java任务
执行Java代码程序
3、Web服务任务
执行webservice远程调用
4、业务规则任务
流程中加入自定义规则,和框架规则一致为true才能通行
5、邮件任务
发送邮件,需要配置邮件相关参数
6、http任务
发送http请求,需要配置http相关参数
7、手动任务
对于流程引擎不影响,到了该活动节点会直接穿过。可以用于下一个活动节点参数预处理。 
8、接收任务
等待消息触发,流程引擎才会继续执行。

执行监听器:(execution listener)可以在流程执行中发生特定的事件时(流程开始,执行中,结束),执行外部Java代码或计算表达式
任务监听器:(task listener)用于在特定的任务相关事件发生时(创建,指派,完成,删除),执行自定义的Java逻辑或表达式。
事件监听器:(FlowableEventListener)可以让你在引擎中发生多种事件的时候得到通知,具体查看支持事件类型。比如流程中变量改变等,包含上面两种监听器里的事件
补偿处理器:使用一个活动补偿另一个活动的影响。需要补偿边界事件触发,用于某个活动不进行了,走补偿事件情况。

子流程
包含其他的活动、网关、事件等的活动,一般用于事件触发。可以通过消息事件、错误事件、信号时间、定时器事件或补偿事件等触发

操作:

1、Skip Expression:流程经常会遇到提交人与审批人是同一个人的问题(单位管理员提交申请书),此操作配置表达式来处理逻辑,当提交人和审批人是同一个人则跳过当前活动节点。${submitPsnCode == psnCode} 
2、Data Objects:自定义参数设置,流程引擎启动后会在参数表(act_ru_variable)新增数据,用于表达式判断时需要的参数。
3、Set a specific history level for this process definition :
none(无):跳过所有历史的存档。这是流程执行性能最高的配置,但是不会保存任何历史信息
activity(活动):存档所有流程实例与活动实例。在流程实例结束时,将顶级流程实例变量的最新值复制为历史变量实例。但不会存档细节
audit(审计):默认级别。将存档所有流程实例及活动实例,并保持变量值与提交的表单参数的同步,以保证所有通过表单进行的用户操作都可追踪、可审计
full(完全):历史存档的最高级别,因此也最慢。这个级别存储所有audit级别存储的信息,加上所有其他细节(主要是流程变量的更新)
4、多实例类型:Parallel->并行多实例 指分配给多个用户之后,只要其中一个用户完成即可下一步 
Sequential->串行多实例,值分配给多个用户之后,必须一个一个去完成才能进入下一步节点
配置信息:
collection(集合): 传入List参数,一般为用户ID集合
elementVariable(元素变量):List中单个参数的名称
loopCardinality(基数):list循环次数
isSequential:是否串并行
completionCondition(完成条件):任务出口条件
nrOfInstances:实例总数。
nrOfCompletedInstances:当前还没有完成的实例 nr是number单词缩写 。
loopCounter:已经循环的次数。
nrOfActiveInstances:已经完成的实例个数。
5、isExecutable:是否可执行的流程,默认true 
6、异步:任务独立创建线程执行。
7、默认流:解决一条路线都无法找到的问题,如果所有路线规则都不通过,则走默认流。(报错时不走)

Flowable数据库表命名规则:

1、ACT_RE_* ’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
2、ACT_RU_* ’RU’表示runtime。(15张表)这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
3、ACT_ID_* ’ID’表示identity(组织机构)。(9张表)这些表包含标识的信息,如用户,用户组,等等。
4、ACT_HI_* ’HI’表示history。(10张表)就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
5、ACT_GE_* 普通数据。(2张表)各种情况都使用的数据。
6、ACT_DE_* 流程设计器相关表。主要是存储流程画图信息和流程图历史数据。

act_re_deployment 部署数据表
act_re_model 流程设计模型部署表
act_re_procdef 流程定义表

act_ru_execution 流程实例(执行流)表
act_ru_task 流程任务表
act_ru_variable 流程参数表
act_ru_identitylink 流程身份关系表

act_id_group 用户组表
act_id_user 用户表
act_id_membership 用户组与用户关系表

act_ge_bytearray资源表
act_ge_property属性表

act_hi_actinst历史节点表(记录业务流程走过每个节点的信息)
act_hi_procinst流程实例历史核心表(记录业务流程执行开始结束节点以及时间)
act_hi_varinst历史变量表(记录业务流转变量)

功能:
1、自定义流程校验 √
2、流程执行完通知 √
3、流程各节点跳转 √
4、流程重置 √
5、流程图生成 √
6、流程加签 √
7、流程多人会签 √
8、流程规则计算 √
9、业务逻辑执行 √
10、流程设计器配置 √

菜单:
1、app.js配置Case模型,表单,决策表,应用程序
2、stencilset_bpmn.json配置流程设计器功能项

坑:
1、流程XML文件必须以"bpmn20.xml"、"bpmn"结尾,否则部署不成功。(ParsedDeploymentBuilder类会判断文件结尾是否正确)
2、act_id_user数据需要填充满,不然画图里检索用户,检索不到。(IdentityService)

flowable和activity对比
1、flowable基于activiti 6进行开发,修复了很多activiti的bug,对比下来逻辑上没有本质上的区别。
2、flowable支持事务子流程,activiti没有。
3、flowable支持jms、rabbitmq方式处理历史数据,activiti没有。activiti没有。
4、flowable与activiti提供了新的事务监听器。activiti5版本只有事件监听器、任务监听器、执行监听器。
5、flowable支持在流程中动态添加任务节点,activiti没有。
6、使用dmn规范设计器时,可以进行流程校验
7、flowable修复了dmn规范设计器,activit用的dmn设计器还是旧的框架,bug太多。
8、flowable可以实现task任务

Flowable用户手册

https://download.csdn.net/download/qq_33317228/14988478?spm=1001.2014.3001.5501

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值