使用 Web Services 整合 IBM FileNet P8 BPM 与 IBM WebSphere ILOG JRules
Ranjeeth 是 IBM India Software Labs 的一位软件开发人员。他专注于新技术、敏捷 BPM 和关系数据管理等方面。他目前的研究包括(但不限于)在 SOA 环境中的产品之间实现更丰富整合的 Web Services 技术改进。
Bharathi 是 IBM India Software Lab 的 Enterprise Content Management 团队的一位软件工程师。她有 10 年的软件开发经验。她参与多个 ECM 产品研发,包括 IBM Document Manager、Content Manager OnDemand、IBM FileNet Report Manager、FileNet Enterprise Manager 和 FileNet BPM。
简介: 当前竞争激烈的业务环境要求一个组织的业务过程必须是调度动态的。一个业务必须能适应和管理快速变化的业务规则及业务过程。通过一个业务规则管理系统(BRMS),您能够从业务过程中提取出业务规则,并单独地对它们进行管理,最终实现过程合理化。本文阐述了如何整合行业领先的 BRMS 产品 IBM® WebSphere® ILOG® JRules 与综合业务过程管理系统(BPMS)产品 IBM FileNet® P8 BPM。
引言
现代软件系统设计强调使用业务规则管理系统(BRMS)管理快速变化的业务规则的需求。您可以改进您的业务过程敏捷性来提供更好的决策方法并能更好地维护您的软件系统。业务过程管理系统(BPMS)能够直接利用 BRMS 解决方案所提供的功能。查看 参考资料 中所包含的更多关于以业务为中心的 BPM 和 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" thenset 'PI Accept The Insurance' to false ; |
- 在代码编辑器上创建一个规则,如清单 2 所示,这样如果一个患者的健康等级超过 60,Accept The Insurance 条件就会被设置为 false。
清单 2. 验证一个可接受的分健康等级的规则
if'PI HealthRating' is more than 60 thenset 'PI Accept The Insurance' to false ; |
- 在代码编辑器中创建一个规则,如清单 3 所示,这样如果过去 5 年曾经有保险被拒绝,那么 Accept The Insurance 条件会被设置为 false。
清单 3. 检查保险在过去 5 年是否被拒绝的规则
if'PI Insurance Rejected in 5 years' is truethenset 'PI Accept The Insurance' to false ; |
- 初始化输入变量,如清单 4 所示,这样如果 1 等于 1:
- Accept The Insurance 条件会被设置为 true
- BMI 被设置有 Weight/(Height * Height)
清单 4. 初始化输入变量
if1 equals 1thenset '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. 初始化健康等级
if1 equals 1thenset '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 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,需要完成下面的步骤。
- 单击 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 类型。
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 协同工作的解决方案使我们能够实现业务决策的快速修改,这会有助于一个组织巩固它在当前的市场竞争中的位置。这个解决方案能改进业务过程的敏捷性,并为每一位投资人提供正确的工具。
致谢
我们诚挚感谢以下校阅人,感谢他们花费了宝贵时间对本文进行校阅,并对本文的所有方面给出了他们的建议和评论:
- Chris Berg —— 产品经理(WebSphere BRMS)
- Andy J Ritchie —— ILOG 开发整合 & 协同(WebSphere BRMS)
- Jiehua Eva Lu —— 技术联盟经理(WebSphere BRMS)
- Srinivas Nv Gannavarapu —— 顾问软件工程师(企业内容管理)
原文链接:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1004filenetbpmjrules/index.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-674287/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14789789/viewspace-674287/
使用 Web Services 整合 IBM FileNet P8 BPM 与 IBM WebSphere ILOG JRules相关推荐
- IBM FileNet P8 的权限管理
IBM FileNet P8 是一个产品系列,有若干个组件组成.主要组件有 ContentEngine,简称 CE,主要用于数据的储存和管理: ApplicationEngine,简称 AE,是给终端 ...
- 中海油基于IBM FileNet P8构筑海外业务管理系统
积极进行海外业务拓展的中国海洋石油有限公司,急需通过信息管理平台的建设,应对海外业务信息繁杂.工作多样化的挑战,同时满足SOX 404法案的要求. 为什么选择IBM? IBM的内容管理解决方案具有前瞻 ...
- Web services 安全实践: 基于 HTTP Basic Authentication 为 Web services 配置传输层安全机制...
转载:http://www.ibm.com/developerworks/cn/webservices/1106_webservicessecurity/ 简介 正如"HTTP Basic ...
- 老李分享:Web Services 组件 2
WSDL 是一种基于 XML 的语言,它用来对 web service 及其如何访问进行描述. WSDL 表示 web service 描述语言(Web Services Description La ...
- 多 LDAP 目录服务器的 FileNet P8 系统介绍和配置实例
摘抄笔记:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1312multipldap/ 多 LDAP 目录服务器的 ...
- Filenet P8阶段性总结
FileNet P8产品的架构很清晰,它包括三大核心组件CE.PE和AE.之所以核心,从<了解ECM与FileNet P8>可以看出filenet p8的四大套件中有三个是基于这三大核心组 ...
- 浅谈PHP与Java之Web开发整合技术
淺談PHP與Java之Web開發整合技術 鄭哲聖郑哲圣 前言 PHP為語法簡單的腳本語言,可以做為HTML的嵌入型語言,而且與Apache網頁伺服器搭配的設定容易.效能亦高. 前言 ...
- RESTful Web Services初探
RESTful Web Services初探 作者:杜刚 近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTf ...
- Web Services简单介绍
Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...
最新文章
- 字节跳动推荐平台技术公开,项亮:底层架构有时比上层算法更重要
- HPU暑期第五次积分赛 - G-迷宫(BFS+最短路径)
- 像素游戏制作大师MV新手教程(二):素材的载入
- Python中静态方法的实现
- 1、绪论初识机器学习
- 签到 数据库php,php与数据库的连接用法 (签到一)
- c mysql 双主复制_mysql双主复制总结
- PAT1001. 害死人不偿命的(3n+1)猜想
- 面向过程编程与面向对象编程
- Matlab查看像素坐标
- 主要几个浏览器的内核是什么
- 华尔街英语:又一成人英语巨头悄然出局
- 计算机中插入背景图片怎样操作,word插入背景图片_Word 2007中插入图片的背景设置妙招_word中插入背景图片_word插入图片做背景...
- python idle使用_Python IDLE 基本操作
- apple pay,--牛逼,
- Mule ESB开发与学习
- remosaic插值算法_图像插值算法及其实现
- Python3 《零基础小白从入门到实战》之“continue 语句”
- 腾讯开放平台 iOS应用URL schema、Bundle ID填写 (含微博、微信)
- 调用开放接口(多个系统间的数据传输)
热门文章
- POI实现Excel的导出
- 团队角色解析的最佳做法
- Onvif协议控制球机云台
- 四种排序:选择,插入,冒泡,快速排序原理及其对应的时间、空间复杂度解析
- DEM\DTM\DOM\DRG\DLG示例图
- Antd的Table表中,对最后一页数据进行全部删除后,自动返回上一页的数据
- html5试卷分数提交制作,如何制作一份高质量的试卷
- Springboot Failed to parse configuration class x nested exception is Java class path resource
- 部编版是什么版本_部编版教材和人教版教材的区别
- 牛客 CMB1 序列找数