1)在上一节中,完成了BPM中的流程流转动作与Web Dynpro中的事件绑定。而同时在BPM工程的数据类型中也完成了对Web Dynpro上下文的引用,展开BPM工程目录中的“Data Types”就能看到引用的结果,如图7-98所示。
2)将上下文的根结点结构“Context”拖曳至右侧模型编辑器中,生成了“DO_Con⁃text”的流程上下文对象,即完成了流程上下文的声明。完成上下文定义后,需要完成流程上下文映射、网关判断逻辑、任务审批人、任务标题的配置,如图7-99所示。
图7-98 绑定Web Dynpro项目后的效果
图7-99 生成“DO_Context”对象
3)接着选中用户动作,打开下方的“Input”页签,完成从左侧流程上下文到右侧流程任务所需上下文的映射,如图7-100所示。
4)打开下方的“Output”页签,完成从左侧流程任务输出的上下文到右侧流程上下文的映射,如图7-101所示。
5)按照同样的操作,将其余的用户动作结点进行上下文映射。参考Web Dynpro开发模式,可以将“DO_Context”流程上下文对象想象成Web Dynpro中的组件控制器,工作流中的数据流转都需要通过“DO_Context”进行同步,但与组件控制器不同的是,“DO_Context”只有数据定义而没有逻辑定义。
图7-100 流程上下文映射1
图7-101 流程上下文映射2
6)接着进行网关判断的定义。选中流程中的网关,勾选“refuse”为默认的,接着选择“Appr”并单击“Edit”按钮,打开条件编辑,如图7-102所示。
图7-102 修改网关判断条件
7)根据设计,当上下文中的“tasknode”特性值为“30”时,代表审核通过并到二级审批步骤,默认为拒绝。条件表达式的关键字可以从右侧的清单中选择,也可以手动编写,如图7-103所示。输入对应条件表达式:
string-equal(DO_Context/ProcessNode/BusiData/taskNode,"30")
图7-103 修改网关判断条件表达式(www.daowen.com)
8)使用同样的方式设置二级审批的网关判断条件。
9)接着选中任务,切换至“Roles”角色页签,选中“Use an expression”单选按钮,随后单击“Ed⁃it”按钮,如图7-104所示。
10)表达式的关键字与网关逻辑判断时一样,审批人通过上下文中的“nextApprPers”传递,如图7-105所示。
图7-104 编辑角色所有者
getPrincipal(UIRequest/Context/ProcessNode/BusiData/nextApprPers)
图7-105 编辑表达式
11)使用同样的方式设置另外两个流程任务的审批人。
12)接着打开任务的“User Texts”页签,在“Variables”中单击“Add”按钮添加一个“taskName”的参数,随后单击“Edit”按钮,如图7-106所示。
图7-106 添加变量
13)使用上下文中的“taskName”进行传递(见如图7-107),输入:
UIRequest/Context/ProcessNode/BusiData/taskName
14)完成变量创建后,接着在下方的任务标题中输入该参数,在“Subject”中输入“{taskName}”,其中“{}”表示引用参数的名称。完成设置后,所有待办的标题也可以通过Web Dynpro中的上下文进行自定义修改了,如图7-108所示。
图7-107 编辑表达式
图7-108 定义任务标题
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。