情景实例
本文引入一个简化的员工经费报销商业流程实例,如下图。员工在提交报销后会经过部门经理,公司主管审批,然后由财务人员审核最后完成经费的报销。
这个流程主要是由三个人工任务构成的,而且任务节点间回退跳转需求很多,总结了回退跳转的需求如下:
1.管理员角色能够自由指定流程的跳转。例如特别紧急的报销,而部门经理无法尽快给出审批,管理员可以指定流程直接跳过部门经理审批直接转到财务人员审核。
2.人工任务节点自动比照设定的规则决定跳过还是执行。例如,报销金额少于一百,财务人员审核可以自动跳过。
这两种人工任务流的动态性需求非常适合使用Collaboration Scope去实现,本文后面部分将逐步介绍这个情景实例的实现。
1.创建BO及Interface
为了实现上述实例,首先创建Module工程ReimbursementApplication,并在工程中创建报销流程中传递的数据对象BO:ReimbursementDescription,以及三个人工任务的用户接口interface:ReimbursementApp、BO数据及Interface接口的表示如下:
2.添加Collaboration Scope
首先新建一个BPEL流程ApplicationProcess,在这个流程中实现实例中的业务逻辑。如下图在BPEL流程编辑器的左侧托盘中添加了新的目录Human Wokflow,其中就包含Human Task和新增的Collaboration Scope两个Activity元素。选择托盘中的Collaboration Scope节点添加到流程中来,并根据Collaboration Scope中改变的变量ReimbursementDescription->approved的值来决定是否进行报销还是直接退回申请。
3.创建Folder变量
在一个工程中第一次使用Collaboration Scope时,如下图所示,会弹出一个对话框提示是否导入相关的数据类型和接口的定义,点击OK则自动导入这些文件到当前的工程中来。导入的这些数据中就包括tCaseFolder数据类型的定义。
在导入数据文件之后,可以创建一个会弹出下图所示的对话框,点击“new”创建一个tCaseFolder类型的变量folder。