ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WID中利用Collaboration Scope实现动态人工任务流程

WID中利用Collaboration Scope实现动态人工任务流程

原创 Linux操作系统 作者:liweing 时间:2009-06-15 11:39:11 0 删除 编辑

引言

   人工交互是商业流程管理解决方案中非常重要的组成部分,在实际应用中人工任务流的动态性需求也是十分普遍,如人工任务的回退,跳转,是工作流动态性的重要需求。WebSphere Integration Developer作为商业流程的开发工具,在6.2版本中引入了一个新的BPEL Activity元素 Collaboration Scope,为开发动态的人工任务流提供了丰富的支持,本文将从实例出发详细介绍在WID 中如何使用Collaboration Scope来创建动态的人工任务流程。

Collaboration Scope简介

Collaboration ScopeWID6.2版本中新增加的Activity类型, Collaboration Scope类似普通Scope元素,可以在其中添加多种Activity来创建业务逻辑. 但是并不是所有的Activity都可以在Collaboration Scope内部使用,它只支持使用Basic Activity目录下的BPEL Activity,不能添加Receive/ Choice元素,也不能添加任何Structure目录下的BPEL Activity.另外在Collaboration Scope中也不支持fork gateway的连接关系.

 

为什么使用Collaboration Scope

         我们选择Collaboration Scope的首要原因, 它能够为工作流程特别是人工任务流程带来巨大的动态性.添加到Collaboration Scope中的商业逻辑和Collaboration Scope以外的商业逻辑比较,具有以下两种动态性属性:,Collaboration Scope的管理员角色的用户可以在流程运行时动态的实现流程的自由跳转., 通过为Collaboration Scope内的Activity定义退出条件,来实现这个Activity的自动跳过或者自动重复.

 

如何使用退出条件

退出条件是一种实现自动跳过或者自动重复某个Activity的机制,这种机制不需要管理员干预,在流程运行时设定的退出条件达到,那么对应的Activity会自动的跳过或者重做.同时每个Activity两种退出条件分别是on entryon exit,它们分别对应实现Activity的跳过和重做动作。

其中,on entry的退出条件是在这个Activity执行前进行求值,如果值为真(True),则自动跳过这个Activity,否则正常执行这个Activity

on exit的退出条件是在这个Activity被执行后进行求值,如果值为假(false),则自动重复执行这个Activity,否则正常退出并执行连接的下一个Activity

 Folder变量

每个Collaboration Scope节点都需要设置绑定一个Folder变量,该变量的数据类型是预定义的数据类型tCaseFolder, 该数据类型定义会在第一次使用Collaboration Scope时自动的导入到用户工程中来,位于StandardImortFileGen目录下。导入的这些数据中就包括tCaseFolder数据类型的定义. 在导入数据文件之后,可以创建一个tCaseFolder类型的Folder变量.

后期在Business Space中执行流程时,这个Folder变量会对应一个共享资源的文件夹,用户在执行该collaboration scope中的人工任务时可以添加删除里面的资源,这些资源可以是一些在线的文档,网页或者其他相关网络附件.通过这个资源目录, collaboration scope内部的多个人工任务节点可以实现共享业务资源和传递业务数据.下图就是在Business SpaceTask Information Widget中向Collaboration Scope的资源目录中添加资源的界面。 

在一个流程中如果添加过一个collaboration scope,那么再次用到collaboration scope时可以选择重用已经创建的Folder变量,这样可以在不同的collaboration scope间共用一个资源目录。 

情景实例

   本文引入一个简化的员工经费报销商业流程实例,如下图,员工在提交报销后会经过部门经理,公司主管审批,然后由财务人员审核最后完成经费的报销。

这个流程主要是由三个人工任务构成的,而且任务节点间回退跳转需求很多,总结了回退跳转的需求如下:

1. 管理员角色能够自由指定流程的跳转;例如特别紧急的报销,而部门经理无法尽快给出审批,管理员可以指定流程直接跳过部门经理审批直接转到财务人员审核。

2. 人工任务节点自动比照设定的规则决定跳过还是执行.例如,报销金额少于一百,财务人员审核可以自动跳过。

这两种人工任务流的动态性需求非常适合使用Collaboration Scope去实现,本文后面部分将逐步介绍这个情景实例的实现。

1.创建BOInterface

为了实现上述实例,首先创建Module工程ReimbursementApplication,并在工程中创建报销流程中传递的数据对象BO: ReimbursementDescription,以及三个人工任务的用户接口interface: ReimbursementAppBO数据及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.启动UTEWPS 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时,流程会自动跳过财务审核,进入BPCEview process states界面,流程执行情况如下图,财务审核节点上绿色小箭头就表示在该节点上执行了自动的Skip了,退出条件生效。

        

 

image002.jpg

image004.jpg

image006.jpg

image008.jpg

image010.jpg

image012.jpg

image014.jpg

image016.jpg

image018.jpg

image020.jpg

image022.jpg

image024.jpg

image026.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21435389/viewspace-606387/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-15

  • 博文量
    1
  • 访问量
    1878