4.设置管理员角色
在BPEL中选中Collaboration Scope,点击属性视图的Administration栏,会有一个administration的人工任务被自动创建。
点击Open打开这个人工任务的编辑器,选中People Assignment部分的Administrators一项,在属性视图中进行编辑,为这管理任务选择一个的所有人。该实例中,我们选择Everybody为所有人,这也是Collaboration Scope的默认设置。其实在执行时,并不是任何用户都可以做Administration的动作,只有Collaboration Scope中那些人工任务对应的所有人才能够有权限执行Administration的动作,也就是动态的执行任务的自由跳转。
5.添加业务逻辑
往Collaboration Scope中添加三个人工任务并进行连接,三个人工任务的接口interface都定义为ReimbursementApp。
6.设置退出条件
为了实现报销金额少于一百,财务人员审核可以自动跳过。我们使用退出条件,通过在“财务人员审核”的task上定义on entry的退出条件来实现。在Evaluate Condition上选择on entry,然后选择用Java作为表达式实现语言,实现表达式return (reimbursement.sum<100)。
7.Business Space中执行测试
将流程ApplicationProcess托拽到Assembly Diagram中并保存Assembly Diagram。启动UTE的WPS server,部署工程ReimbursementApplication。
启动BPCE,在浏览器中打开http://localhost:9082/bpc。以admin/admin登陆,进入ProcessTemplates,选中ApplicationProcess点击Start Instances,启动报销流程。
登陆Business Space,在浏览器中打开http://localhost:9082/BusinessSpace。以admin/admin登陆,新建一个Managing Tasks and Workflow为模板的Space。
在Human Workflow Diagram中可以选择执行过的人工任务进行redo,或者选择没有执行的任务进行skip,这些管理操作能够实现Collaboration Scope之内的流程任意跳转。
提交报销申请时的报销总合小于100时,流程会自动跳过财务审核,进入BPCE的view process states界面,流程执行情况如下图。财务审核节点上绿色小箭头就表示在该节点上执行了自动的Skip,退出条件生效。