按照”COCE_GIW_ALL_Index”活动所述步骤完成”Approve”活动的步骤。
右键点击”SendMail”,在弹出的菜单中选择”活动向导”,在弹出的对话框中,”服务类型”区域选择”系统服务”,在”服务选择”区域中选择”连接现有服务”,并点击”选择”按钮,在弹出的对话框中选择”Send E-mail via SMTP”,在”属性”标签页下的数据映射选项卡中填写邮件发送的相关信息,其中”to”字段填写如下 JS 代码:tw.local.approverNames[tw.local.currentApproverNumber – 1]
“messageText”字段填写如下 JS 代码:tw.local.mailContents[tw.local.currentApproverNumber – 1]
contentType 字段填写”text/html”,”smtpHost”字段填写合法的 SMTP 主机 IP 或者域名,”from”字段填写对应的合法邮件账户,其他字段填写空字符串。右键点击”COCE_GIW_ROBF_DuplicateCheck”,在弹出的界面中分别选择”系统服务”和”新建服务”,保持名称不变点击”下一步”,在”活动向导 – 参数”页面为新建的服务修改如图 11 所示的参数输入输出映射,并点击”完成”按钮:
图 11. COCE_GIW_ROBF_DuplicateCheck 参数映射
双击业务流程定义中”COCE_GIW_ROBF_DuplicateCheck”的节点,详细编辑节点的子步骤。选择 Common 区域中的”Nested Service”,在其”Properties”选项卡下的”Implementation”中的”AttachedService”区域中,点击右边的”Select”按钮,在弹出的页面中选择”Read From HTTP”服务,最后用”序列流”将整个子步骤连接起来,完成后如图 12 所示:
图 12. 更改 COCE_GIW_ROBF_DuplicateCheck 的实现
返回到”SimpleRapidBPD”主流程定义页面,点击图中”LoopDecision”决策网关,选择”属性”选项卡下的”实施”子属性,在右边的”决策”区域中,”to SendMail”对应的编辑框中填入相应代码。
完成后如图 13 所示:
如上图所示,”to 结束”右边默认填入”缺省行”,如果”to SendMail”处于下面,并且右边区域默认填入”缺省行”,可通过右边的上下箭头进行交换。此时流程定义结束。点击设计器右上方的 按钮,Authoring Environment 将自动切换到”检查器”视图,左上方区域中是流程实例相关数据,右上方是 Activity 相关运行数据,左下方是当前运行实例的模拟视图,右下方是调试数据。当前正在运行”COCE_GIW_ALL_Index”活动,由橘黄色游标指示。点击右上角的
按钮,会刷新出最新产生的活动,选择其中一个活动,点击其右边的
按钮,会执行该活动。通过不断重复上述步骤,直到流程正确结束。
注意:在模拟运行流程之前,须将 SendMail 活动的数据映射中的”to”和”messageText”字段改成任意符合条件的非空字段,否则模拟运行时会抛出异常。
自此,基于 IBM BPM 的发票审核流程定义完成。
构建基于 IBM Business Process Manager 流程定义的应用程序
本文所描述的 JavaEE 系统主要使用 IBM BPM 所提供的 WebAPI 作为外部系统和 BPM 系统交互的通道。
打开 Eclipse 启动程序,点击菜单栏”File”—>”New”—->”Dynamic Web Project”,在弹出的对话框中”Project name”段中填入”LombardiSimulation”,选择合适的”Target Runtime”和”Web Module Version”点击”Finish”,完成工程的创建。根据情况选择合适的”Target Runtime”和”Dynamic web module version”,项目中分别为 Apache Tomcat V6.0 和 v2.5。完成后在工作台中的 JavaEE Perspective 中的 Project 视图中可以看见工程结构。
创建 Web 组件之前,先了解一下工程中所使用的 Web 组件。表 5 中列出了 Web 工程中主要的后台功能组件,表 6 列出了工程中的前台页面组件。
表 5. Dynamic Web Project 功能组件
名称 |
类型 |
访问 URL |
描述 |
FileLoadDaemon |
Thread |
无 |
轮训后台服务端,当出现新的文档 Image 的时候启动 StartPIThead 的实例 |
StartPIThread |
Thread |
无 |
根据配置文件,连接 IBM BPM 的服务器,并启动一个 Process 的实例 |
ApproverServlet |
Servlet |
ApproverServlet |
处理审核者的审核请求 |
DisposeIndexServlet |
Servlet |
DisposeIndexServlet |
处理发票录入员录入发票数据及其他信息的请求 |
DuplicateCheckServlet |
Servlet |
DuplicateCheckServlet |
响应由 IBM BPM 服务端发送的进行重复性检查的 HTTP 请求 |
InitServlet |
Servlet |
InitServlet |
加载并初始化整个系统所使用的参数,并根据配置文件创建 FileLoadDaemon 实例 |
LoadApproveData |
Servlet |
LoadApproveData |
为发票审核页面加载后台需审核的数据 |
LoadProcessListData |
Servlet |
LoadProcessListData |
为初始页面加载活动的 Process 实例列表数据 |
WebAPIUtil |
Common |
无 |
产生连接 IBM BPM 服务端的 WebAPI 实例的工具类 |
列表中为 Web 系统所使用的主要的类,包括各种 Thread 类,Servlet 类以及普通的 Java 类,图 14 描述了各个类之间的关系:
图 14. 类关系
以下文章点击率最高
Loading…