前面篇章,我们讨论了工作流的控制模式,控制模式好比大脑,负责控制任务的组成和流转;而数据模式则负责在应用与流程之间、流程与流程之间、流程与活动之间、活动与活动之间、任务与任务之间进行数据交互。
一、工作流数据的分类
在工作流模型中,工作流数据分为三个类别:
<1>工作流控制数据:
工作流系统管理的内部控制数据,又称驱动数据,这些数据包括了与流程实例和活动实例相关的执行数据和状态数据,例如流程实例的状态和执行时间、活动实例的执行者、活动执行时间和状态、紧急程度等。
<2>工作流相关数据:
工作流系统使用工作流相关数据确定流程实例的流转条件,并选择下一个将执行的活动,这些数据由业务应用系统访问并修改。例如报销流程中的“报销金额”,这个数据会决定该流程的审批路径;再如为活动设置的超时时间,这个数据会触发活动的取消。实质上,这些数据就是工作流系统需要依赖于进行流程流转的业务应用数据。工作流相关数据又分为三类数据:
1.连接业务应用系统的关联数据:工作流系统与业务应用系统进行关联的数据,例如项目进度调整流程中的项目基础属性。
2.传递作用的业务应用数据:当流程跨越多个业务模块或系统时,需要在模块或系统间传递数据,此时会利用工作流系统进行传递,需要在工作流系统里暂时存储或转换这些业务数据。在面向服务的软件架构中(SOA),最经常采用的是基于BPEL规范进行服务的编制,业务应用数据被封装为SDO在不同Web服务(业务应用系统)间传递。
3.影响路由的业务应用数据,又称决策数据:工作流系统通过该数据来确定流程实例的流转条件,并选择下一个将执行的任务,这些数据可以被业务系统访问并修改。
<3>工作流应用数据:业务应用系统管理的业务数据,有些业务应用数据需要传递给工作流引擎,作为人工UI的列表显示使用。在EAI的应用中,有些业务应用数据还会由工作流引擎携带,在各个业务系统之间进行数据传递。
二、工作流数据应用的场景
1.工作流数据与业务上下文
工作流数据最重要的职责之一就是为业务系统的不同应用场景建立起与之对应的业务上下文。那么,什么是业务上下文?
我们知道, IT 系统是对企业现实业务的映射。在一个翻译公司的典型业务场景中,校对人员对翻译人员提交的翻译文档进行审校,此时,校对人员持有翻译人员翻译后的文档,他需要对该文档进行检查,产生新的审校文档并反馈翻译人员的翻译质量。那么,映射到 IT 系 统里,校对人员的任务通常对应于一张需要处理的业务表单,业务表单里会展现他进行当前工作所需要的数据:翻译文档、翻译人员信息、该校对工作的紧急程度等,另外,在这张表单里,他所能进行的操作也根据他此时的职责作出了行为限定:例如他可以上传新的校对后的文档,但是不能删除已有的翻译文档等。实际上,业务表单实质上反映的是此刻我们能获取哪些数据以及能够如何处理这些数据,我们把它称之为业务上下文,可以看到,在 IT 系统里,业务上下文实质上等于数据加上行为。
企业业务由一系列相互关联的业务场景组成,这些业务场景对应于 IT 系统里的业务上下文,而业务上下文的本质则是数据加上行为。数据和行为的不同决定了业务上下文的差别。这与现实中的工作相符,人们根据获取 / 处理信息的不同,担负不同的职责。 例如,在执行请假申请任务时,申请者可以编辑请假人、天数和原因 3 个字段;而到审批任务时,审批者增加了一个可编辑的审批意见字段,但其余 3 个字段变化为只读字段。我们将这类问题统称为与流程相关的业务数据权限控制。产生这类问题的原因是什么呢?原因就在于在一个业务流程里,不同的任务具有不同的业务上下文。
2.工作流数据与数据分析
工作流数据的第2个应用场景是对业务流程执行进行数据分析,这部分的数据主要是工作流控制数据 。这一部分正受到越来越多的重视,是未来工作流系统的发展方向。
例如,在制造流程里,很重要的一点是需要控制流程的节拍时间,即流程里各个任务的完成时间要一致,如果有一项任务的时间多于其他任务,那么很快就会形成瓶颈,造成在制品的大量积压,前续的任务完成很快,中间忙死,后续任务执行者却无事可做,更重要的是,不能对客户进行快速交付。通过外部环境从流程实例拉数据进行分析,从而优化工作流,便是其价值所在。
3.工作流数据与流程路由
这部分影响路由的一定是业务数据,它们保存到工作流系统里对流程路由产生影响。这种影响不限于任务的选择,还包括的任务的执行条件、任务的完成条件、基于数据的任务触发等。
总结一下,作为区分, 我们将存储于业务系统中的数据称为业务数据,将存储于工作流系统中的数据称为工作流数据。工作流程数据分控制数据(驱动数据)、相关数据(如决策数据)和业务数据。实际应用中,工作流系统需要为这些工作流数据提供精细化的管理和分析功能。
©2023 AlphaFlow流程云 杭州微宏科技有限公司 版权所有 ICP备案号:浙ICP备18039265号-1