在企业中还有一些通用的业务流程,例如:付款流程作为公司业务运作的核心流程之一,在业务设计及架构设计上会保持通用,或者在业务架构中作为一个通用的模块,不同的业务根据财务流程的规范传入指定的参数就可以使用付款流程。
调用活动的特点和子流程类似,但是子流程嵌入在主流程中,要保持通用需要把付款流程作为活动由主流程“调用”,如此调用活动即包含了子流程的特性又保持通用。
对于子流程:
只能且仅包含一个空启动事件;
至少要有一个结束事件(每个流程都要“有始有终”);
在子流程中顺序流不能直接设置输出流到子流程之外的活动上,如果需要,可以通过边界事件代替。
子流程同时也支持多实例特性,例如部门领导为几个业务人员分配 任务,每项任务都是一个子流程,部门领导下发任务之后每个业务员都会拥有一个独立的子流程实例,等所有的业务员都处理完成之后再汇总给到部门领导。
调用活动
调用活动解决的问题是流程的通用性。和子流程的作用一致,但是体现方式不同,使用一个调用活动取代嵌入子流程方式的活动即可,通过创建一个调用活动模型并指定外部流程的ID方式作为主流程的一个子活动。
事务子流程
事务子流程也称为“事务块”,用来处理一组必须在同一个事物总完成的活动,这些活动要么一起完成,要么一起失败。事物子流程中的活动具有ACID特性,如果其中又一个活动失败或取消,则整个事物子流程的所有活动全部回滚。
事件子流程
事件子流程可以添加到流程级别或任意子流程级别。用于触发事件子流程的事件是使用开始事件配置的。