BPM 应用系统开发案例实战3


图 10. 完成活动的参数映射

按照”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 所示:


图 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…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营