一个成熟的工作流管理系统,其引擎对于子流程功能的支持必然是不可少的,这好比是一门编程语言支持函数那么普遍一样。在当前Workflow, BPM, EAI产品的建模工具中,对于子流程/子过程的应用如家常便饭一样,无处不在——是的,随着流程建模工具的日益强大、企业业务过程的日趋复杂及集成要求的不断增长,把相似的“过程”封装成一个个可调用的过程“函数”已经是一个不可缺少的功能了。
下面的内容,主要就以在工作流引擎系统中子流程功能的设计展开。注意:这里父流程指的是主动调用的流程;子流程指的是被动被调用的流程;由XPDL作为建模示范。
建模设计——父流程中描述子流程的XPDL片段及解释
1、子流程(SubFlow)作为父流程中的一种特殊的活动出现。
2、子流程活动的执行(Implementation)节点描述了子流程的同步异步策略以及父流程向子流程提供的实际输入参数(实参)。
实参匹配规则:
如果实参与形参(子流程定义的参数)的数量和类型完全匹配,则不应用特殊规则
如果实参数量大于形参数量,则多出的实参按照前后顺序被忽略
如果实参数量小于形参数量,则引擎抛出“流程设计异常”,并明确提示用户
如果实参和与之对应的形参类型不匹配,则引擎“尝试”进行智能类型转换,如果无法转换(如String型“ok”转换为Boolean型),则引擎抛出“工作流转型异常”,并明确提示用户
子流程活动扩展属性(ExtendedAttributes)参见普通人工活动的扩展属性定义。
XPDL:
<
WorkflowProcesses
>
<
WorkflowProcess
AccessLevel
="PUBLIC"
Id
="1028100100000000053"
Name
="测试流程(主流程)"
>
……
<
Activities
>
……
<
Activity
Id
="SubFlow1"
Name
="子流程活动"
>
<
Implementation
>
<
SubFlow
Id
="1028100100000000042"
Execution
="SYNCHR"
>
<
ActualParameters
>
<
ActualParameter
>
rData
</
ActualParameter
>
<
ActualParameter
>
mainXParam
</
ActualParameter
>
</
ActualParameters
>
</

本文探讨了工作流引擎中子流程的设计与实现,包括子流程在父流程中的建模、实参匹配规则、多版本处理、同步异步策略以及流程发起者定义。此外,还详细阐述了子流程在父流程监控中的处理和实例清除规则。
最低0.47元/天 解锁文章
172万+





