使用 Web Services 整合 IBM FileNet P8 BPM 与 IBM WebSphere ILOG JRules
2010-09-09 00:00:00 来源:WEB开发网引言
现代软件系统设计强调使用业务规则管理系统(BRMS)管理快速变化的业务规则的需求。您可以改进您的业务过程敏捷性来提供更好的决策方法并能更好地维护您的软件系统。业务过程管理系统(BPMS)能够直接利用 BRMS 解决方案所提供的功能。
本文阐述了整合这两个行业领先的软件系统的必要步骤:
IBM FileNet P8 Business Process Manager 在人与系统之间管理内容及与人紧密联系过程的工作流。 IBM WebSphere ILOG JRules通过支持实时修改业务规则而帮助组织快速修改业务决策。
这两个产品的整合方法以下几种:
规则连接框架
Java™ 组件整合
Web Services
本文关注于使用 Web Services 实现这两种产品的低耦合整合。
理解先决条件
本文至少需要以下的配置:
安装包含 Content Engine、Process Engine 和 Application Engine 的 IBM FileNet P8 Platform Version 4.5 或以上版本
安装包含 Rule Studio 和 Rule Execution Server 的 IBM WebSphere ILOG JRules Version 7.0 或以上版本
以下其他有用的条件:
熟悉 Eclipse
具有使用 IBM FileNet P8 Process Designer 的基本经验
在本文中,使用 IBM FileNet P8 Version 4.5.1 与 IBM WebSphere ILOG JRules Version 7.0.2 整合。
探讨医疗保险的用例
第一个例子描述的是一个保险业过程,它利用 BRMS 进行直接处理。BRMS 负责处理一般任务,包括检查健康等级、检查 BMI 和计算客户保险费。BRMS 会自动化最小风险应用的登记。而保险人员只处理复杂的应用。
在现实场景中,保险处理正变得越来越复杂,但是在本文中 FileNet BPM 的处理流程是经过简化的,主要关注于整合的技术层面。
示例场景的保险处理工作流是由一个系统步骤组成的,它使用一个挂载的透明决策服务(HTDS)进行直接处理。用于自动保险业务的 HTDS 是 JRules。在某些条件下会转发两个人工任务。如果 HTD 拒绝政策请求(返回 false),那么这个工作流会被转发到保险人员进行评估。电子邮件通知可以自动实现,但是为了简化这个实现,在示例场景中会被设计为一个人工任务。图 1 说明这个处理工作流。
图 1. 医疗保险用例图
设计业务规则
WebSphere ILOG JRules Rule Studio 是一个基于 Eclipse 的规则开发工具。要创建一个新的规则,我们需要完成以下步骤:
选择菜单 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Rule Studio 打开规则工具。
单击 File > New > Rule Project,如图 2 所示。
图 2. 使用 Rule Studio 创建一个新的规则项目
查看原图(大图)
选择 Standard Rule Project 并输入一个正确的项目名称。
保留项目的默认设置,然后单击 Finish。
规则工具底部的 Rule Project Map 是您可以用来创建一个 RuleSet 的不同部署步骤。
创建 XOM 和 BOM
在 ILOG JRules 中创建的规则是针对一个 Executable Object Model (XOM) 运行的,它引用了应用对象和外部应用数据。XOM 是 Business Object Model (BOM) 的基本实现。BOM 是对应于所写规则的模型。您可以从零开始创建一个 BOM,您也可以通过解析您的执行对象模型(XOM)自动创建 BOM。本文阐述了如何使用以下步骤从一个 XOM 创建一个 BOM。JRules 可以使您能够从 Java 对象或 XML 创建 XOM。要将部署的规则以一个 Web Service 发布,需要使用一个 XML XOM。
将下面的 FileNet XSDs 保存到您的本地硬盘: http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsd 和 http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd。 文件 bpmnxpdl_24.xsd 引用文件 schema_10_xpdl.xsd file 作为它的模式定义。
编辑 bpmnxpdl_24.xsd 文件,然后将属性 schemaLocation 从 http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd 修改为 [localpath]/[filename]。
从 Rule Project Map 中选择 Import XOM。
在 XOM 选择窗口选择 Dynamic Execution Object Model (XSD or WSDL)。
单击 Add External XSD,如图 3 所示。
图 3. 创建 XOM
查看原图(大图)
选择 FileNet XSD(bpmnxpdl_24.xsd),然后单击 Finish。这样会为 Rule Project 创建 XOM。
单击 Rule Project Map 的 Create BOM 链接,然后为 BOM 设置名称。
保证选中 Create a BOM entry from a XOM,然后单击 Next。
单击 Browse XOM,选择唯一可用的 XOM,然后单击 OK。这样就可以看到可用的记录,如图 4 所示。
图 4. 创建 BOM
选择第一个记录,然后单击 Finish。您可能在创建 BOM 时会遇到一些由 ILOG 的 BOM 对象默认说明的错误。
单击每一个错误,然后在默认说明后加上数字后缀,修正这些错误。
保存规则项目。然后错误应该就会消失。
创建所需要的参数
业务规则需要使用所定义的变量。要创建这些参数,需要完成以下步骤:
单击 Rule Project Map 的 Define parameters。
保证 ILOG JRules 所影响的参数都声明为 OUT 或 IN/OUT。
保存例子使用的变量名、类型和说明,包括本文所使用的变量。如表 1 所示。
例子的重要变量
名称 | 类型 | 方向 | 说明 |
pi_height | java.lang.Float | IN_OUT | PI Height |
pi_weight | java.lang.Float | IN_OUT | PI Weight |
pi_gender | java.lang.String | IN_OUT | PI Gender |
pi_DOB | java.util.Date | IN_OUT | PI Date of Birth |
pi_maritalStatus | java.lang.String | IN_OUT | PI Marital Status |
pi_empStatus | java.lang.String | IN_OUT | PI Employment Status |
pi_monthlyIncome | java.lang.Double | IN_OUT | PI Monthly Income |
pi_reqCoverage | java.lang.Double | IN_OUT | PI Requested Coverage |
pi_insurRejected | java.lang.Boolean | IN_OUT | PI Insurance Rejected in 5 years |
pi_employerInsur | java.lang.Boolean | IN_OUT | PI Has Employer Insurance |
pi_otherInsur | java.lang.Boolean | IN_OUT | PI Has Other Insurance |
pi_HH_AIDS | java.lang.Boolean | IN_OUT | PI Has AIDS disease |
pi_HH_alcohol | java.lang.Boolean | IN_OUT | PI Is Alcoholic |
pi_HH_Cancer | java.lang.Boolean | IN_OUT | PI Has Cancer |
pi_HH_KidneyStones | java.lang.Boolean | IN_OUT | PI Has Kidney Stones |
pi_HH_Tumor | java.lang.Boolean | IN_OUT | PI Has Tumor |
pi_HH_BP | java.lang.Boolean | IN_OUT | PI Has High BP |
pi_HH_Diabetes | java.lang.Boolean | IN_OUT | PI Has Diabetes |
pi_BMI | java.lang.Float | IN_OUT | PI BMI |
pi_BMI_Res | java.lang.String | IN_OUT | PI BMI Result |
pi_AcceptInsurance | java.lang.Boolean | IN_OUT | PI Accept The Insurance |
pi_AidsRating | java.lang.Integer | IN_OUT | PI AIDS Rating |
pi_CancerRating | java.lang.Integer | IN_OUT | PI Cancer Rating |
pi_AlcoDrugaddictRating | java.lang.Integer | IN_OUT | PI Alcohol Rating |
pi_KidneyStonesRating | java.lang.Integer | IN_OUT | PI Kidney Stones Rating |
pi_TumorRating | java.lang.Integer | IN_OUT | PI Tumor Rating |
pi_DiabetesRating | java.lang.Integer | IN_OUT | PI Diabetes Rating |
pi_HiBPRating | java.lang.Integer | IN_OUT | PI BP Rating |
pi_HealthRating | java.lang.Integer | IN_OUT | PI HealthRating |
创建规则包
规则集是以包组织的,每一个包都包含一组规则。要创建一个新的规则包,单击 Rule Project Map 的 Add rule package,然后设置一个正确的名称。
创建所需要的业务规则
每一个业务规则都是由一个条件和一组语句构成的。这个条件和语句会使用规则项目所定义的参数。要创建一个业务规则,需要完成以下步骤:
单击 File > New > Business Rule,然后设置一个正确的名称。
选择希望在其中创建规则的包。
单击 Finish。然后代码编辑器就会显示,您可以在上面编辑规则。
在代码编辑器上创建一个规则,如清单 1 所示,这样如果一个患者的 BMI 结果是 Obese 或 Underweight,则 Accept The Insurance 条件将被设置为 false。
清单 1. 检查体重指数的规则
if
'PI BMI Result' is "Obese"
or 'PI BMI Result' is "Underweight"
then
set 'PI Accept The Insurance' to false ;
在代码编辑器上创建一个规则,如清单 2 所示,这样如果一个患者的健康等级超过 60,Accept The Insurance 条件就会被设置为 false。
清单 2. 验证一个可接受的分健康等级的规则
if
'PI HealthRating' is more than 60
then
set 'PI Accept The Insurance' to false ;
在代码编辑器中创建一个规则,如清单 3 所示,这样如果过去 5 年曾经有保险被拒绝,那么 Accept The Insurance 条件会被设置为 false。
清单 3. 检查保险在过去 5 年是否被拒绝的规则
if
'PI Insurance Rejected in 5 years' is true
then
set 'PI Accept The Insurance' to false ;
初始化输入变量,如清单 4 所示,这样如果 1 等于 1:
Accept The Insurance 条件会被设置为 true
BMI 被设置有 Weight/(Height * Height)
清单 4. 初始化输入变量
if
1 equals 1
then
set 'PI Accept The Insurance' to true ;
set 'PI BMI' to 'PI Weight' / ('PI Height' * 'PI Height') ;
初始化健康等级,如清单 5 所示,这样:
AIDS Rating 设为 100
Cancer Rating 设为 90
Tumor Rating 设为 80
Diabetes Rating 设为 60
Alcohol Rating 设为 50
BP Rating 设为 40
清单 5. 初始化健康等级
if
1 equals 1
then
set 'PI AIDS Rating' to 100 ;
set 'PI Cancer Rathing' to 90 ;
set 'PI Tumor Rating' to 80 ;
set 'PI KidneyStones Rating' to 70 ;
set 'PI Diabetes Rating' to 60 ;
set 'PI Alcohol Rating' to 50 ;
set 'PI BP Rating' to 40 ;
使用一个技术规则计算健康等级,如清单 6 所示。
清单 6. 使用一个技术规则计算健康等级
when {TirContext() from ?context;
evaluate (1==1);
}
then {
pi_HealthRating = 0;
if (pi_HH_AIDS) {
pi_HealthRating = pi_HealthRating + pi_AidsRating;
}
if (pi_HH_alcohol) {
pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
}
if (pi_HH_Cancer) {
pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
}
if (pi_HH_Tumor) {
pi_HealthRating = pi_HealthRating + pi_TumorRating;
}
if (pi_HH_KidneyStones) {
pi_HealthRating = pi_HealthRating + pi_KidneyStonesRating;
}
if (pi_HH_Diabetes) {
pi_HealthRating = pi_HealthRating + pi_DiabetesRating;
}
if (pi_HH_BP) {
pi_HealthRating = pi_HealthRating + pi_HiBPRating;
}
}
使用一个将 BMI 与 BMI 结果关联的决策表计算 BMI 结果,如图 5 所示。
图 5. 使用一个决策表计算 BMI 结果
查看原图(大图)
创建规则流
一个规则流决定了规则集的执行顺序。要创建这个规则流,您必须完成以下步骤:
单击 Add RuleFlow,设置一个名称,然后单击 Finish。这样就会打开一个图形化编辑器。
单击 Start 图标,然后单击图表区域创建流的开始点。
单击创建结束点。
按照执行顺序将规则从 Project Explorer 拖到图表区域。
单击 Create Transition 图标,然后单击开始对象。
单击规则,这样就能创建开始和第一个规则之间的转换。
为其他规则和结束点创建类似的转换。图 6 显示的规则流的最后结果。
图 6. 创建规则流
创建规则应用
这个规则应用是将要部署到执行服务器的部署存档。要创建这个规则应用,需要完成以下步骤。
单击 Project Map 的 Create RuleApp,并设置一个名称。
选择需要添加到存档的项目和规则集。
单击 Finish。
这样就为规则集创建规则应用。您现在可以直接将规则应用部署到执行服务器或把它导出为一个 JAR 文件以备将来部署。
测试、调试和部署业务规则
因为 Rule Studio 是基于 Eclipse 框架的,所以您可以像其他 Java 项目一样测试和调试业务规则。
单击 Run > Open Run Dialog,然后在上下文菜单上配置一个新的规则项目。
为参数指定初始值,然后单击 Run。要测试结果,您可以在您的规则中插入一些输出语句,然后检查控制窗口的输出。
一旦您作好部署的准备后,您就可以右键单击 Project Explorer 中的规则应用,然后单击 Ruleapp > Deploy。然后部署对话框就会显示。
保留默认设置,并单击 Deploy。这样就会将 RuleApp 存档部署到 Rule Execution Server。
要验证部署是否成功,您可以在 Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 打开 Rule Execution Server。
使用 resAdmin/resAdmin (ILOG Version 7.0.2) 登录,然后单击 Explorer 选项卡。
单击 RuleApps 树,然后您最新部署的规则集就会显示,如图 7 所示。
图 7. 部署业务规则
查看原图(大图)
提取部署的规则的 WSDL
Web Services Description Language (WSDL) 是一个接口定义语言,Web Services 客户用它确定服务器所提供的接口明细。完成以下步骤就能够为部署的 ILOG 规则集生成 WSDL 链接。
单击 Start > Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces 登录到 Rule Execution Server。
单击 Explorer 选项卡,然后选择和部署规则集。
单击 Get WSDL for the latest ruleset version。
这样会打开一个以 XML 格式显示所生成的 WSDL 新浏览器窗口,如图 8 所示。您可以在 IBM FileNet P8 Process Designer 使用这个 WSDL 调用规则集。
图 8. 为 ILOG 规则集生成 WSDL
查看原图(大图)
使用 IBM FileNet P8 设计过程工作流
在实现这个示例用例中最重要的一个步骤是设计过程工作流。您可以使用 IBM FileNet P8 Process Designer 按照以下步骤创建这个工作流。
使用您的帐号登录到 IBM FileNet P8 Workplace。
单击屏幕左边框架的 Author > Advanced Tools 打开 Process Designer。然后设计器小应用程序就会打开。
通过拖放方式从 BOM 画板上创建工作流步骤,然后创建工作流,其中 Personal Insurance (Auto Underwriting) 是一个调用 JRules 的 HTDS 直接自动处理保单的系统任务,如图 9 所示。
图 9. 过程工作流
查看原图(大图)
创建所需要的工作流变量
工作流变量是工作流中人与系统交互的基础。它们也用于在各种工作流步骤中实现条件转发。要创建工作流变量,需要完成以下步骤。
单击 Process Designer 的 Workflow Properties 图标。
打开 Data Fields 选项卡。
双击数据表格,使用各种数据类型的变量,如表 2 所示。要保证 Merge Type 的数据类型是 Override。
工作流变量
名称 | 类型 | 合并类型 |
pi_FirstName | String | Override |
pi_FirstName | String | Override |
pi_LastName | String | Override |
pi_Height | Float | Override |
pi_Weight | Float | Override |
pi_Gender | String | Override |
pi_DOB | String | Time |
pi_MaritalStatus | String | Override |
pi_EmpStatus | String | Override |
pi_MonthlyIncome | Float | Override |
pi_CoverageAmount | Float | Override |
pi_InsurRejected | Boolean | Override |
pi_EmpProvidedInsur | Boolean | Override |
pi_OtherInsur | Boolean | Override |
pi_HH_AIDS | Boolean | Override |
pi_HH_Alcohol | Boolean | Override |
pi_HH_Cancer | Boolean | Override |
pi_HH_KidneyStones | Boolean | Override |
pi_HH_Tumor | Boolean | Override |
pi_HH_BP | Boolean | Override |
pi_HH_Diabetes | Boolean | Override |
InsuranceType | String | Override |
pi_AcceptInsurance | Boolean | Override |
iLOG_RES_String | String | Override |
iLOG_RESNumRules | Integer | Override |
pi_BMI_Res | String | Override |
pi_BMI | Float | Override |
pi_AidsRating | Integer | Override |
pi_CancerRating | Integer | Override |
pi_AlcoDrugaddictRating | Integer | Override |
pi_KidneyStonesRating | Integer | Override |
pi_TumorRating | Integer | Override |
pi_DiabetesRating | Integer | Override |
pi_HiBPRating | Integer | Override |
pi_HealthRating | Integer | Override |
将工作流变量关联到步骤中并设置参与者
当您将工作流变量分配给步骤时,它们就会显示在该步骤的步骤处理器中,而它们一般会以之前步骤填写的输入框或信息框形式出现。记住工作流变量对于所有步骤是全局的。要分配变量到每一个步骤,需要完成以下步骤。
单击您想要分配变量的步骤。
在步骤属性面板,单击 Parameters 选项卡。(对于 LaunchStep,单击 General 选项卡)。
从 Available Parameters 列表选择以下您想要分配给执行步骤的参数,然后使用向右箭头将参数移到 Selected Parameters 列表:
pi_AcceptInsurance[RW]
pi_BMI[RW]
pi_BMI_Res[RW]
pi_CoverageAmount[RW]
pi_DOB[RW]
pi_EmpProvidedInsur[RW]
pi_EmpStatus[RW]
pi_FirstName[RW]
pi_Gender[RW]
pi_Height[RW]
pi_HH_AIDS[RW]
pi_HH_Alcohol[RW]
pi_HH_BP[RW]
pi_HH_Cancer[RW]
pi_HH_Diabetes[RW]
pi_HH_KidneyStones[RW]
pi_HH_Tumor[RW]
pi_InsurRejected[RW]
pi_LastName[RW]
pi_MaritalStatus[RW]
pi_MonthlyIncome[RW]
pi_OtherInsur[RW]
pi_Weight[RW]
选择和移动下面的参数,将它们分配到 Human Underwriting 步骤的 Selected Parameters:
pi_CoverageAmount[RW]
pi_DOB[RW]
pi_EmpProvidedInsur[RW]
pi_EmpStatus[RW]
pi_FirstName[RW]
pi_Gender[RW]
pi_Height[RW]
pi_HH_AIDS[RW]
pi_HH_Alcohol[RW]
pi_HH_BP[RW]
pi_HH_Cancer[RW]
pi_HH_Diabetes[RW]
pi_HH_KidneyStones[RW]
pi_HH_Tumor[RW]
pi_InsurRejected[RW]
pi_LastName[RW]
pi_MaritalStatus[RW]
pi_MonthlyIncome[RW]
pi_OtherInsur[RW]
pi_Weight[RW]
选择和移动下面的参数,将它们分配到电子邮件通知步骤:
InsuranceType[RW]
pi_AcceptInsurance[RW]
pi_FirstName[RW]
pi_LastName[RW]
对于人工任务(Human Underwriting 和 Email Notification),必须分配工作流参与者。要添加一个参与者到一个任务,需要完成以下步骤:
单击该步骤。
在参与者区的 General 选项卡,选中 Participants 单选按钮。
选择有权限的用户处理工作项目。为了简单起见,您可以将用户 Administrator 分配到所有人工步骤,如图 10 所示。
图 10. 关联工作流参与者
查看原图(大图)
在您将变量和参与者关联到步骤上后,再通过下面的步骤添加转发条件。
单击 Result = True。
输入 pi_AcceptInsurance = true 作为转发条件。
单击 Result = False。
输入 pi_AcceptInsurance = false 作为转发条件。
配置 IBM FileNet P8 BPM 使用 Web Services
要配置 IBM FileNet P8 BPM 使用 Web Services,需要完成下面的步骤。
单击 Workplace Admin,打开 Process Configuration Console 小应用程序。
连接到您的单独区域。
右键单击这个区域,然后单击 Properties。
单击 Web Services 选项卡,并选择复选框 Enable Process Designer to enter WSDL links without browsing for Web Services,如图 11 所示。
图 11. 使过程设计器直接接收 WSDL URL
查看原图(大图)
配置工作流调用步骤执行业务规则
要使用 ILOG 提供的 Web Service,您需要使用来自于 ILOG 执行服务器的 WSDL 配置一个伙伴链接。要配置这个伙伴链接,需要完成以下步骤。
单击 Process Designer 的 Workflow Properties > Web Services。
双击 Partner Links 列表的空白行,添加一个新的伙伴链接。
单击 Invoke 复选框。
在文本框中,粘贴 ILOG 生成的 WSDL。
保证为 ILOG WSDL 自动选择 Port Type。最后结果如图 12 所示。
图 12. 配置工作流使用 Web Service
查看原图(大图)
一旦伙伴链接配置好后,单击 Web Services Invoke,如 Personal Insurance (Auto Underwriting)。这是一个系统任务,所以 Invoke 是选择列表中所选择的操作。
双击 Invoke 配置 Web Service 调用。
选择您刚刚创建的伙伴链接,以及这个操作。对于 ILOG,您可以只选择 executeDecisionService() 操作。然后过程设计器会将 Web Service 的所有输入和输出变量填充到两个单独的列表中,其中这两个列表是您可以用来选择映射本地变量的。
对于每一个输入和输出变量,从下拉列表选择正确的本地变量。图 24 显示输出变量的映射。
表 3. 映射输出变量以发送数据到 iLog Web Service
名称 | 类型 | 表达式 |
pi_height | Float | pi_Height |
pi_weight | Float | pi_Weight |
pi_gender | String | pi_Gender |
pi_DOB | Time | pi_DOB |
pi_maritalStatus | String | pi_MaritalStatus |
pi_empStatus | String | pi_EmpStatus |
pi_monthlyIncome | Float | pi_MonthlyIncome |
pi_reqCoverage | Float | pi_reqCoverage |
pi_insurRejected | Boolean | pi_InsurRejected |
pi_employerInsur | Boolean | pi_EmpProvidedInsur |
pi_otherInsur | Boolean | pi_OtherInsur |
pi_HH_AIDS | Boolean | pi_HH_AIDS |
pi_HH_alcohol | Boolean | pi_HH_Alcohol |
pi_HH_Cancer | Boolean | pi_HH_Cancer |
pi_HH_KidneyStones | Boolean | pi_HH_KidneyStones |
pi_HH_Tumor | Boolean | pi_HH_Tumor |
pi_HH_BP | Boolean | pi_HH_BP |
pi_HH_Diabetes | Boolean | pi_HH_Diabetes |
pi_BMI | Float | pi_BMI |
pi_BMI_Res | String | pi_BMI_Res |
pi_AcceptInsurance | Boolean | pi_AcceptInsurance |
pi_AidsRating | Integer | pi_AidsRating |
pi_CancerRating | Integer | pi_CancerRating |
pi_AlcoDrugaddictRating | Integer | pi_AlcoDrugaddictRating |
pi_KidneyStonesRating | Integer | pi_KidneyStonesRating |
pi_TumorRating | Integer | pi_TumorRating |
pi_DiabetesRating | Integer | pi_DiabetesRating |
pi_HiBPRating | Integer | pi_HiBPRating |
pi_HealthRating | Integer | pi_HealthRating |
表 4 显示了输入变量的映射。
表 4. 映射输入变量以使用 ILOG Web Service
名称 | 类型 | 域名称 |
ilog.rules.outputString | String | iLOG_RES_String |
ilog.rules.firedRulesCount | Integer | iLOG_RES_NumRules |
pi_height | Float | pi_Height |
pi_weight | Float | pi_Weight |
pi_gender | String | pi_Gender |
pi_DOB | Time | pi_DOB |
pi_maritalStatus | String | pi_MaritalStatus |
pi_empStatus | String | pi_EmpStatus |
pi_monthlyIncome | Float | pi_MonthlyIncome |
pi_reqCoverage | Float | pi_reqCoverage |
pi_insurRejected | Boolean | pi_InsurRejected |
pi_employerInsur | Boolean | pi_EmpProvidedInsur |
pi_otherInsur | Boolean | pi_OtherInsur |
pi_HH_AIDS | Boolean | pi_HH_AIDS |
pi_HH_alcohol | Boolean | pi_HH_Alcohol |
pi_HH_Cancer | Boolean | pi_HH_Cancer |
pi_HH_KidneyStones | Boolean | pi_HH_KidneyStones |
pi_HH_Tumor | Boolean | pi_HH_Tumor |
pi_HH_BP | Boolean | pi_HH_BP |
pi_HH_Diabetes | Boolean | pi_HH_Diabetes |
pi_BMI | Float | pi_BMI |
pi_BMI_Res | String | pi_BMI_Res |
pi_AcceptInsurance | Boolean | pi_AcceptInsurance |
pi_AidsRating | Integer | pi_AidsRating |
pi_CancerRating | Integer | pi_CancerRating |
pi_AlcoDrugaddictRating | Integer | pi_AlcoDrugaddictRating |
pi_KidneyStonesRating | Integer | pi_KidneyStonesRating |
pi_TumorRating | Integer | pi_TumorRating |
pi_DiabetesRating | Integer | pi_DiabetesRating |
pi_HiBPRating | Integer | pi_HiBPRating |
pi_HealthRating | Integer | pi_HealthRating |
启动工作流并实际测试业务规则
在选择了伙伴链接和映射了变量后,您就可以按照以下步骤启动工作流了。
通过单击 File > Validate Workflow Collection 验证工作流。
单击 File > Transfer Workflow Collection 将工作流传输到对象存储和过程引擎中。
在传输时,要为文档选择一个正确的标题,并选择存储该工作流的对象存储位置。
为文档选择默认安全性设置。
单击 File > Launch Main Workflow 启动工作流。记住您要选择 Administrator 作为所有人工任务的默认用户。然后启用窗口就会打开,并且带有一个输入表单,如图 13 所示。
图 13. 启动工作流
查看原图(大图)
在表单域中填写正确的值,然后单击 Launch,如图 13 所示。
这样,自动保单处理任务执行。如果规则引擎返回一个肯定响应,那么这个任务会被转到电子邮件通知任务。如果规则引擎返回一个否定响应,那么这个任务就会转到人工保单处理任务。
要验证结果,单击工作空间的 Tasks > Inbox,然后单击工作项目的步骤处理器。
微调技巧
要考虑使用下面的方法优化您的项目。
如果您在规则工具和 IBM FileNet P8 Process 设计器中使用相同的变量名,那么 INVOKE 步骤的变量映射是自动完成的。
如果您对最新规则集版本使用 WSDL,您可以修改这些规则并将它们作为小版本部署而不影响工作流。这个工作流会使用最新的规则集完成它的运行。
当您以记录方式(如,一个 Excel® 电子表格)组织大量作用到相同的变量组的规则,那么要使用 ILOG JRules 导入功能。它使您能够导入一个 Excel 文件,然后创建一个决策表。
除了使用示例 XSD 文件,您也可以使用不同的变量和类型创建您自己的 XML 基本文件而开发一个 XSD 文件,用于创建 XOM。然而,对于生产环境需要,您可以考虑使用本文所提供的 XSD,因为它包含了所有的 IBM FileNet P8 类型。
使用 Web Service 整合:HTDS 的一个替代方法
IBM FileNet P8 BPM 和 IBM WebSphere ILOG JRules 实现 Web Services 整合的方法有两个。如前面 配置工作流调用步骤以执行业务规则 所阐述的,您可以在您的过程工作流中直接使用 HTDS WSDL 并映射输入和输出变量。或者,您可以使用 ILOG Rule Studio 的代码生成器功能为规则集生成一个 Web Service 客户端。要使用代码生成器功能,您需要创建一个 Java® 组件,它会使用所生成的客户端发起 Web Service 调用,然后将组件与过程工作流整合。
结束语
本文阐述了如何使用 Web Services 整合 IBM FileNet P8 BPM 和 IBM WebSphere ILOG JRules。同时,本文也详细介绍了使用这些工具开发和部署您的业务规则的步骤。IBM FileNet P8 BPM 与 JRules 协同工作的解决方案使我们能够实现业务决策的快速修改,这会有助于一个组织巩固它在当前的市场竞争中的位置。这个解决方案能改进业务过程的敏捷性,并为每一位投资人提供正确的工具。
更多精彩
赞助商链接