预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

9 扩展模型:实现基于角色的交互 因为备用供应商不会总是给我们最合适的价格,所以我们将再次扩展该模型以便在供应 商的价格过高时包含一个审批步骤。 为了防止审批请求在某人的审批目录中停留过长时间(如果这样,我们将不能满足客户 服务水平协议的要求),审批活动将以这样一种方法来执行,即在确定的时间范围内, 较低级管理者不批准或拒绝该请求时,审批请求将自动转给更高级管理者。 337 9.1职员决议和异常管理 在新的方案中,我们将引入由MQSeriesWorkflow提供的一些异常管理和职员决议特性。 现在,我们将演示基于角色的动态路由和自动异常处理。 改进的工作流应标记供应商向我们索取的价格比我们向客户索取的价格更高的条目,并 且将这些条目发送给支持审批的异常队列。如果异常条目在指定的时间内没有被响应, 它们将被转给更高级的管理者。 9.1.1角色定义 我们将为BuyXYZ公司定义两个角色: 1.从构建时中选择Staff标签。 2.右键单击Roles并选择NewRole,将出现如图9-1所示的窗口。 3.在名称区域中键入BuyXYZ_Clerk。 图9-1BuyXYZ职员角色 重复这些步骤来创建BuyXYZ管理者角色(见图9-2)。 338 图9-2BuyXYZ管理者角色 9.1.2全体职员定义 现在,我们将定义在BUYXYZ订单流程中执行手动活动的人。我们将以一般名称代替 真实名称。 1.从构建时中选择Staff标签。 2.右键单击Persons并选择NewPerson,将出现如图9-3所示的窗口。 3.在名称区域中键入BUYXYZ_CLERK。 4.指定默认口令。 339 图9-3人称属性通用标签 提示:级别名可以通过扩展级别树来修改,然后双击您希望修改的级别号。 5.选择Staff标签。 6.单击“Memberofroles”边框中的手电筒图标(箭头所指),如图9-4所示,将出 现“FindRole”窗口。 7.选择BuyXYZ_Clerk,结果如图9-4所示。 340 图9-4人称属性中的职员标签 8.选择认证(Authorizations)标签,如图9-5所示。 9.单击“Categories”边框中的手电筒图标,将出现“FindCategory”窗口。 10.选择BUYXYZProcesses。 341 图9-5人称中的认证标签 11.单击确定(OK)。 现在,我们将重复这些步骤来创建一些管理者,并为每位管理者分配不同的级别。 342 图9-6BuyXYZ管理者1定义 1.如图9-6所示,选择Level1,它是我们给定的管理人员描述。 2.单击Staff标签并选择BuyXYZ_Manager。 343 图9-7BuyXYZ管理者2定义 3.如图9-7所示,选择Level5,它是我们给定的高级副总经理描述SeniorVice President.。 4.单击Staff标签并选择BuyXYZ_Manager。 9.1.3活动staffing定义 现在,我们将修改活动定义来利用基于角色的手动活动分配。 1.打开“CancelOrder”活动的活动属性窗口,如图9-8所示。 2.选择Staff1标签。 3.选择Dynamicassignmentfrompage2..。 344 图9-8Staff1设置 4.选择Staff2标签,如图9-9所示。 5.单击“Memberofroles”边框上的手电筒图标,将出现“Findroles”窗口。 6.选择BuyXYZ_Clerk。 345 图9-9Staff2设置 7.单击确定(OK)。 对确认订单活动重复这些步骤。现在,任一作为角色“BuyXYZ_Clerk”成员的用户都 将收到关于取消订单和确认订单活动的条目。 我们将对存储控制活动再次重复这些步骤,但有以下不同: 选择BuyXYZ_Manager作为角色。 将级别设为4(见图9-10)。 346 图9-10存储控制活动的职位分配。 这将把存储控制活动路由给任一级别为4级或4级以下的管理者。 9.2设计定价异常流程 如果供应商所定价格高于或等于我们向客户索取的价格,将会触发新的审批流程。 347 9.2.1数据需求 为了判断该条件,我们将需要在“OrderInfo”数据结构中指定产品价格。一种选择是在 现有的数据结构(即“SupplyInput”和“SupplyValid”)中加入“ProdPrice”字段。然 而,如果选择该选项,我们将不得不修改使用现有数据结构的UPES应用程序。所以, 我们将创建一个新的数据结构“CheckPrice”,它将包含价格检查所需的字段