情景实例
本文引入一个简化的员工经费报销商业流程实例,如下图。员工在提交报销后会经过部门经理,公司主管审批,然后由财务人员审核最后完成经费的报销。
这个流程主要是由三个人工任务构成的,而且任务节点间回退跳转需求很多,总结了回退跳转的需求如下:
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。
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,退出条件生效。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
谁知道阿里云河南服务中心是干什么的?
一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]
-
来之不易的0.1秒 只为离梦想更进一步
0.1秒可以做什么?弹指一挥间,什么也做不了。我们甚至感受不到它的存在。然而对于云端筑梦的人来说,0.1秒的差距,结局也许就是天壤之别。
-
Impact 2012:SOA 3.0时代全面开启
现在的面向服务架构——SOA并不如以前那样耀眼夺目,而是以“服务”的形式出现在更多的场合中,然而,SOA已经焕发出全新的生机。
-
SOA知识工具包:中间件厂商产品攻略
对于软件架构师和开发者能否正确理解SOA开发平台的互操作性和性能,我们不得而知,因为IT产业中太多东西缺乏标准或者标准不健全。