Integrate IBM FileNet P8 BPM with IBM WebSphere ILOG JRules using Web services

Managing business rules together with business processes

The competitive nature of today's business demands that an organization's business processes be highly dynamic. A business must accommodate and manage fast-changing business rules associated with business processes. A business rules management system (BRMS) enables you to extract business rules and decisions from business processes and manage them independently, thereby allowing the processes to be streamlined. This article describes how to integrate IBM® WebSphere® ILOG® JRules, an industry-leading BRMS, with IBM FileNet® P8 BPM, a comprehensive business process management system (BPMS). [The November 2010 update includes the following changes: the term expert system was changed to decision service; business rules conditional checking 1 equals 1 was removed; the PI prefix to verbalization was removed; the rules are better organized in in the rule packages; and the rule flow was updated based on the new package design. --Ed]

Share:

Ranjeeth Pasupathi (rpasupat@in.ibm.com), Staff Software Engineer, IBM

Photo of Ranjeeth PasupathiRanjeeth is a software developer working in the IBM India Software Labs. He specializes in emerging technologies, agile BPM, and relational database management topics. His current research includes (but is not limited to) enhancements on Web services technology for richer integration between products in an SOA environment.



Bharathi Anjeneya (banjeney@in.ibm.com), Staff Software Engineer, IBM

Photo of Bharathi AnjeneyaBharathi is a Staff Software Engineer working with the IBM India Software Lab on the Enterprise Content Management team. She has 10 years of experience working in software development. She has worked on various ECM products, including IBM Document Manager, Content Manager OnDemand, IBM FileNet Report Manager, FileNet Enterprise Manager, and FileNet BPM.



11 November 2010 (First published 29 April 2010)

Also available in Chinese Russian Portuguese

Introduction

Modern software-systems design emphasizes the use of business rules management systems (BRMS) for managing the complex business and decision logic. This enables you to better manage the demand to swiftly change business rules. You can improve the agility of your business processes, providing options for better decision-making and overall maintenance of your software systems. Business process management system (BPMS) can directly leverage the features BRMS solutions provide. See Resources for more information about business-focused joint value propositions for BPM and BRMS.

This article describes the steps required to integrate two industry-leading software systems:

IBM FileNet P8 Business Process Manager
Manages workflow among people and systems for content and human-intensive processes.
IBM WebSphere ILOG JRules
Helps organizations to swiftly change business decisions by allowing real-time modifications to their business rules.

There are multiple ways the two products can be integrated:

  • Rules connectivity framework
  • Java™ component integration
  • Web services

This article focuses on a loosely coupled integration between the two products using web services.


Understanding the prerequisites

This article requires the following minimum configuration:

  • IBM FileNet P8 Platform Version 4.5 or above with Content Engine, Process Engine, and Application Engine installed
  • IBM WebSphere ILOG JRules Version 7.0 or above with Rule Studio and Rule Execution Server installed

The following will also be helpful:

  • Familiarity with Eclipse
  • Basic level experience using IBM FileNet P8 Process Designer

In this article, IBM FileNet P8, Version 4.5.1, integrates with IBM WebSphere ILOG JRules, Version 7.0.2.


Exploring a use case for health insurance underwriting

The first example scenario describes part of an insurance underwriting process that leverages BRMS for straight-through processing. The BRMS handles the tasks that can be automated, including checking the bmi, calculating the health rating, and calculating the customer's premium. The combination of Filenet and BRMS provides process orchestration and automated decision-making, which enables automation of the enrollment of minimum-risk applications. Human underwriters then process only the complicated applications using human tasks in Filenet.

The underwriting process workflow for the example scenario consists of a system step that invokes a decision service for straight-through processing to keep the scenario simple and focus on the technical integration scenario with BRMS. In underwriting processes, some of the major steps, including validating the client input, calculating the clients health rating, and calculating the insurance premium, could be separate process activity steps in Filenet invoking separate decisions.

The decision service for automated-underwriting is implemented using rules in JRules. There are two human tasks that are conditionally routed. If the decision service rejects the policy request (returns false), the workflow is routed to human underwriters for evaluation. The email notification can be automated, but to simplify the implementation, it is designed as a human task in the example scenario. Figure 1 shows this process workflow.

Figure 1. Health insurance use case diagram
Policy request to iLOG JRules. If not straight-through, goes to Accept policy. Yes goes to email. No goes to humans.

Designing the business rules

WebSphere ILOG JRules Rule Studio is an Eclipse plug-in used to build rule projects. To create a new rule, complete the following steps:

  1. Select Program Files > IBM WebSphere ILOG JRules V7.0.2 > Rule Studio to open the Rule Studio.
  2. Click File > New > Rule Project, as shown in Figure 2.
Figure 2. Create a new rule project using Rule Studio
shows drop-down menu to create a new rule project
  1. Select Standard Rule Project, and enter an appropriate name for the project.
  2. Accept the default settings for the project, and click Finish.

The rule project map at the bottom of the Rule Studio guides you from the rule project definition to the RuleApp deployment.

Create the XOM and BOM

The rules created in ILOG JRules are executed against an Executable Object Model (XOM) that references the application objects and data of the external application. The XOM is the base implementation of the Business Object Model (BOM). BOM is the model against which the rules are written. You can create a BOM from scratch, or you can create it automatically by parsing your execution object model (XOM). This article describes how to create a BOM starting from a XOM, as shown in the following steps. JRules enables you to create the XOM either from Java objects or from XML. This article uses a dynamic XML XOM.

  1. Save the following FileNet XSDs onto your local disk: http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsd and http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd. The bpmnxpdl_24.xsd file refers to the schema_10_xpdl.xsd file as its schema definition.
  2. Edit the bpmnxpdl_24.xsd file, and change the schemaLocation attribute from http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd to [localpath]/[filename].
  3. Select Import XOM from the rule project map.
  4. Select Dynamic Execution Object Model (XSD or WSDL) in the XOM selection window.
  5. Click Add External XSD, as shown in Figure 3.
Figure 3. Create the XOM
Screen cap: Dynamic Execution Object Model with button highlighted
  1. Select the FileNet XSD (bpmnxpdl_24.xsd), and click Finish. This creates the XOM for the rule project.
  2. Click the Create BOM link from the rule project map, and assign a name for the BOM.
  3. Ensure that Create a BOM entry from a XOM is checked, and click Next.
  4. Click Browse XOM, select the only available XOM, and click OK. The available entries are shown in Figure 4.
Figure 4. Create the BOM
Screen cap: New BOM Entry with button highlighted and org.wfmc._2002.xpdl1_0 highlighted
  1. Select the first entry, and click Finish. You can expect a few errors when the BOM is created, because several members of the XOM have the same name.
  2. Click each of the errors, and change the default verbalization by appending numeric suffixes to correct the errors.
  3. Save the rule project. The errors should be gone.

Create the required parameters

The business rules act on a set of objects called parameters, which represent the interface of the rule service. To create the parameters, complete the following steps:

  1. Click Define parameters from the rule project map.
  2. Ensure that the direction of the parameters is correctly selected based on your design.
  3. Keep the variable names, types, and verbalizations from the example, including the variables that are used in this article, as shown in Table 1.
Table 1. Key variables for example
NameTypeDirectionVerbalization
heightjava.lang.FloatINHeight
weightjava.lang.FloatINWeight
genderjava.lang.StringINGender
dobjava.util.DateINDate of Birth
maritalStatusjava.lang.StringINMarital Status
empStatusjava.lang.StringINEmployment Status
monthlyIncomejava.lang.DoubleINMonthly Income
reqCoveragejava.lang.DoubleINRequested Coverage
insurRejectedjava.lang.BooleanINInsurance Rejected in 5 years
empInsurancejava.lang.BooleanINApplicant has Employer provided Insurance
otherInsurancejava.lang.BooleanINApplicant has other Insurance
hasAIDSjava.lang.BooleanINApplicant has AIDS
isAlcoholicjava.lang.BooleanINApplicant is Alcoholic
hasCancerjava.lang.BooleanINApplicant has Cancer
hasKidneyStonesjava.lang.BooleanINApplicant has Kidney Stones
hasTumorjava.lang.BooleanINApplicant has Tumor
hasHiBPjava.lang.BooleanINApplicant has High Blood Pressure
hasDiabetesjava.lang.BooleanINApplicant has Diabetes
bmijava.lang.FloatIN_OUTBody Mass index
bmiResultjava.lang.StringIN_OUTBMI Result
insuranceAcceptedjava.lang.BooleanOUTInsurance Accepted
aidsRatingjava.lang.IntegerIN_OUTAIDS Rating
cancerRatingjava.lang.IntegerIN_OUTCancer Rating
alcoholicRatingjava.lang.IntegerIN_OUTAlcoholic Rating
kidneyStonesRatingjava.lang.IntegerIN_OUTKidney Stones Rating
tumorRatingjava.lang.IntegerIN_OUTTumor Rating
diabetesRatingjava.lang.IntegerIN_OUTDiabetes Rating
hiBPRatingjava.lang.IntegerIN_OUTHigh BP Rating
healthRatingjava.lang.IntegerIN_OUTHealth Rating

Create the rule package

Rules can be grouped into packages. To create a new rule package, click Add rule package from the rule project map, and assign an appropriate name. Add the following three rule packages in order:

  1. Initialize: to initialize the parameters used in the business rules
  2. Calculate: to calculate bmi and health rating
  3. Verify: for the actual business rules for automatic underwriting

Create the required business rules

Each business rule consists of a set of conditions and a set of actions. The conditions and statements act on the parameters defined in the rule project. To create a business rule, complete the following steps:

  1. Click File > New > Business Rule, and assign an appropriate name.
  2. Select the package under which you want to create the rule.
  3. Click Finish. The code editor prompts you to enter the rule.
  4. Under the Verify package, create a rule in the code editor, as shown in Listing 1, such that if a patient's bmi result is Obese or Underweight, the Insurance Accepted is set to false.
Listing 1. Rule to check body mass index
if
     'BMI Result' is "Obese"
     or 'BMI Result' is "Underweight"
then
     set 'Insurance Accepted' to false ;
  1. Under the Verify package, create a rule in the code editor, as shown in Listing 2, such that if a patient's health rating is more than 60, the Insurance Accepted is set to false.
Listing 2. Rule to verify an acceptable health rating
if
     'Health Rating' is more than 60
then
     set 'Insurance Accepted' to false ;
  1. Under the Verify package, create a rule in the code editor, as shown in Listing 3, such that if the insurance was rejected in the past 5 years, the Insurance Accepted is set to false.
Listing 3. Rule to check whether insurance has been rejected in the past 5 years
if
     'Insurance Rejected in 5 years' is true
 then
     set 'Insurance Accepted' to false ;
  1. Under the Initialize package, create the rule in the code editor to initialize the parameters, as shown in Listing 4.
Listing 4. Initialize the input variables
then
    set 'Insurance Accepted' to true ;
    set 'AIDS Rating' to 100 ;
    set 'Cancer Rating' to 90 ;
    set 'Tumor Rating' to 80 ;
    set 'Kidney Stones Rating' to 70 ;
    set 'Diabetes Rating' to 60 ;
    set 'Alcoholic Rating' to 50 ;
    set 'High BP Rating' to 40 ;
    set 'Body Mass index' to Weight / ( Height * Height ) ;
    set 'Health Rating' to 0;
  1. Under the Calculate package, create the set of rules one after the other with appropriate names, as shown in Listings 5-11, to calculate the health rating for the different diseases.
Listing 5. If applicant has AIDS, add it up to the health rating
if
    'Applicant has AIDS'
then
    set 'Health Rating' to 'Health Rating' + 'AIDS Rating' ;
Listing 6. If applicant is alcoholic, add it up to the health rating
if
    'Applicant is Alcoholic' 
then
    set 'Health Rating' to 'Health Rating' + 'Alcoholic Rating' ;
Listing 7. If applicant has cancer, add it up to the health rating
if
    'Applicant has Cancer' 
then
    set 'Health Rating' to 'Health Rating' + 'Cancer Rating' ;
Listing 8. If applicant has tumor, add it up to the health rating
if
    'Applicant has Tumor' 
then
    set 'Health Rating' to 'Health Rating' + 'Tumor Rating' ;
Listing 9. If applicant is has kidney stones, add it up to the health rating
if
    'Applicant has Kidney Stones' 
then
    set 'Health Rating' to 'Health Rating' + 'Kidney Stones Rating' ;
Listing 10. If applicant has diabetes, add it up to the health rating
if
    'Applicant has Diabetes' 
then
    set 'Health Rating' to 'Health Rating' + 'Diabetes Rating' ;
Listing 11. If applicant has hjgh blood pressure, add it up to the health rating
if
    'Applicant has High Blood Pressure' 
then
    set 'Health Rating' to 'Health Rating' + 'High Blood Pressure Rating' ;
  1. Calculate the bmi result using a decision table that correlates bmi with the bmi result, as shown in Figure 5.
Figure 5. Calculate bmi result using a decision table
Screen cap: decision table containg cutoffs for bmi

Create the rule flow

A rule flow determines the order of execution of the rule set. To create the rule flow, complete the following steps.

  1. Click Add RuleFlow, assign a name, and click Finish. This opens a graphical editor.
  2. Click the Start icon, and click within the diagram area to create the starting point of the flow.
  3. Click to create the end point.
  4. Drag the rule packages from the project explorer onto the diagram area in the order of execution.
  5. Click the Create Transition icon, and click the start object.
  6. Click the rule package. This creates the transition between the start and the first rule package.
  7. Create similar transitions for the rest of the rule packages and for the end point. Figure 6 shows the resulting rule flow.
Figure 6. Create the rule flow
Flow from Initialize Input to Calculate bmi to Check bmi to lsInsuranceRejected to Initialize Health Rating to Calculate Health Rating to Verify Health Rating

Create the rule application

The rule application is the deployment archive that gets deployed onto the execution server. To create the rule application, complete the following steps.

  1. Click Create RuleApp from the rule project map, and assign a name.
  2. Select the projects and rule sets to be added to the archive.
  3. Click Finish.

The rule application for the rule sets is created. You can now directly deploy the rule application on to the execution server or export it as a JAR file for later deployment.


Running, debugging, and deploying the business rules

Because Rule Studio is based on an Eclipse plugin, you can test and debug business rules similarly to how you would test and debug Java projects. Complete the following steps to test and debug the business rules.

  1. Click Run > Open Run Dialog, and configure a new rule project from the context menu.
  2. Provide initial values for the parameters, and click Run. To test the results, you can insert print statements within your rules and check the output in the console window.
  3. Once you are ready for deployment, right-click the rule application from the project explorer, and click Ruleapp > Deploy. The deployment dialog appears.
  4. Accept the default settings, and click Deploy. This deploys the RuleApp archive onto the rule execution server.
  5. To verify the deployment, open the rule execution server using Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces.
  6. Log in as resAdmin/resAdmin (ILOG Version 7.0.2), and click the Explorer tab.
  7. Click the RuleApps tree. Your newly deployed rule set appears, as shown in Figure 7.
Figure 7. Deploy the business rules
Screen cap: UnderwritingApp Ruleset View with WSDL 'Get HTDS WSDL for the ruleset version' and 'Get HTDS WSDL for the latest ruleset version' highlighted

Extracting the WSDL for the deployed rules

Web Services Description Language (WSDL) is an interface definition language for web services clients to identify the interface details that the server provides. Complete the following steps to generate the WSDL link for the deployed ILOG rule set.

  1. Click Start > Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces to log in to the rule execution server.
  2. Click the Explorer tab, and select the deployed rule set.
  3. Click Get WSDL for the latest ruleset version.

This opens a new browser window with the generated WSDL in XML format, as shown in Figure 8. You can use the WSDL from the IBM FileNet P8 Process Designer to invoke the rule sets.

Figure 8. Generated WSDL for ILOG rule sets
For the deployed rulesets, WSDL can be generated from the Rule Execution Server

Designing the process workflow using IBM FileNet P8

The most important step in the implementation of the example use case is to design the process workflow. You can create the workflow using IBM FileNet P8 Process Designer by completing the following steps.

  1. Sign in to IBM FileNet P8 Workplace using your credentials.
  2. Launch the Process Designer by clicking Author > Advanced Tools on the left frame of the screen. The designer applet opens.
  3. Drag and drop the workflow steps from the BPM palette, and create the workflow in which the Personal Insurance (Automated Underwriting) is a system task that invokes the HTDS of JRules for straight-through automated-underwriting processing, as shown in Figure 9. See Resources for information about the workflow steps.
Figure 9. Process workflow
Screen cap: Workplace Process Designer with Automatede Underwriting, if True then to email; if false then to Human then Email

Creating the required workflow variables

Workflow variables are the basis of human-system interaction within the workflow. They are also used for conditional routing among the various workflow steps. To create workflow variables, complete the following steps.

  1. Click the Workflow Properties icon from the Process Designer.
  2. Open the Data Fields tab.
  3. Double-click the data grid, and create the variables with the associated data types, as shown in Table 2. Make sure that the data type for Merge Type is Override.
Table 2. Workflow variables
NameTypeMerge Type
FirstNameStringOverride
FirstNameStringOverride
LastNameStringOverride
HeightFloatOverride
WeightFloatOverride
GenderStringOverride
dobTimeOverride
MaritalStatusStringOverride
EmpStatusStringOverride
MonthlyIncomeFloatOverride
CoverageAmountFloatOverride
InsurRejectedBooleanOverride
EmpProvidedInsurBooleanOverride
otherInsuranceBooleanOverride
hasAIDSBooleanOverride
isAlcoholicBooleanOverride
hasCancerBooleanOverride
hasKidneyStonesBooleanOverride
hasTumorBooleanOverride
hasHiBPBooleanOverride
hasDiabetesBooleanOverride
InsuranceTypeStringOverride
insuranceAcceptedBooleanOverride
iLOG_RES_StringStringOverride
iLOG_RESNumRulesIntegerOverride
bmiResultStringOverride
bmiFloatOverride
aidsRatingIntegerOverride
cancerRatingIntegerOverride
alcoholicRatingIntegerOverride
kidneyStonesRatingIntegerOverride
tumorRatingIntegerOverride
diabetesRatingIntegerOverride
hiBPRatingIntegerOverride
healthRatingIntegerOverride

Associating workflow variables to steps and assigning participants

When you assign workflow variables to steps, they show up in the step processor for that step, and they act as either input fields or information fields populated from the previous steps. Remember that the workflow variables are global to all the steps. To assign variables to individual steps, complete the following steps.

  1. Click the step to which you want to assign the variables.
  2. On the step properties pane, click the Parameters tab. (For the LaunchStep, click the General tab).
  3. Select the following parameters from the Available Parameters list that you want to assign to the launch step, and use the right-arrow to move the parameters to the Selected Parameters list:
    • insuranceAccepted[RW]
    • bmi[RW]
    • bmiResult[RW]
    • CoverageAmount[RW]
    • dob[RW]
    • EmpProvidedInsur[RW]
    • EmpStatus[RW]
    • FirstName[RW]
    • Gender[RW]
    • Height[RW]
    • hasAIDS[RW]
    • isAlcoholic[RW]
    • hasHiBP[RW]
    • hasCancer[RW]
    • hasDiabetes[RW]
    • hasKidneyStones[RW]
    • hasTumor[RW]
    • InsurRejected[RW]
    • LastName[RW]
    • MaritalStatus[RW]
    • MonthlyIncome[RW]
    • otherInsurance[RW]
    • Weight[RW]
  4. Select and move the following parameters to assign them to the Selected Parameters for the Human Underwriting step:
    • CoverageAmount[RW]
    • dob[RW]
    • EmpProvidedInsur[RW]
    • EmpStatus[RW]
    • FirstName[RW]
    • Gender[RW]
    • Height[RW]
    • hasAIDS[RW]
    • isAlcoholic[RW]
    • hasHiBP[RW]
    • hasCancer[RW]
    • hasDiabetes[RW]
    • hasKidneyStones[RW]
    • hasTumor[RW]
    • InsurRejected[RW]
    • LastName[RW]
    • MaritalStatus[RW]
    • MonthlyIncome[RW]
    • otherInsurance[RW]
    • Weight[RW]
  5. Select and move the following parameters to assign them to the Email Notification step:
    • InsuranceType[RW]
    • insuranceAccepted[RW]
    • FirstName[RW]
    • LastName[RW]

For human tasks (Human Underwriting and Email Notification), workflow participants need to be assigned. To add a participant to a task, complete the following steps.

  1. Click the step.
  2. From the General tab in the participant area, check the Participants radio button.
  3. Select a user with privileges to process work items. For simplicity, you can assign the user Administrator to all human steps, as shown in Figure 10.
Figure 10. Associate workflow participant
Workflow participant assigned for human steps in the workflow

After you associated variables and participants to steps, add the conditions for routing by completing the following steps.

  1. Click Result = True.
  2. Enter insuranceAccepted = true for the routing condition.
  3. Click Result = False.
  4. Enter insuranceAccepted = false for the routing condition.

Configuring IBM FileNet P8 BPM to consume web services

To configure IBM FileNet P8 BPM to consume web services, complete the following steps.

  1. Click Workplace Admin, and open the Process Configuration Console applet.
  2. Connect to your isolated region.
  3. Right-click the region, and click Properties.
  4. Click the Web Services tab, and enable the check box Enable Process Designer to enter WSDL links without browsing for Web Services, as shown in Figure 11.
Figure 11. Enable process designer to accept WSDL URL directly
Enable the flag in process configuration console to allow the copy-paste of WSDL URL directly onto process designer

Configuring the workflow invoke step to execute the business rules

In order to use the web service that ILOG exposes, you need to configure a partner link with the WSDL extracted from the ILOG execution server. To configure the partner link, complete the following steps.

  1. Click Workflow Properties > Web Services on your Process Designer.
  2. Double-click the empty line in the list of Partner Links to add a new partner link.
  3. Click the Invoke check box.
  4. In the text field, paste the WSDL link that ILOG generated.
  5. Ensure Port Type is automatically selected for ILOG WSDL. The resulting screen is shown in Figure 12.
Figure 12. Configure workflow to consume web services
Screen cap: Web Services tab with iLOG_TDS and Invoke partner links highlighted; Invoke is checked; Port Type is DecisionServiceExpertUnderwriting
  1. Once the partner link is configured, click the web services invoke task, such as Personal Insurance (Automated Underwriting). This is a system task, so Invoke is the selected operation on the selected list.
  2. Double-click Invoke to configure the web service invocation.
  3. Select the partner link you just created, and select the operation. For ILOG, you can select only the executeDecisionService() operation. The Process Designer then populates all the input and output variables of the web service in two separate lists from which you can select the local variables to map to.
  4. For each of the input and output variables, select the appropriate local variables from the drop-down list. Figure 24 shows the mapping of the output variables.
Table 3. Map the output variables for sending data to ILOG web service
NameTypeExpression
heightFloatHeight
weightFloatWeight
genderStringGender
dobTimedob
maritalStatusStringMaritalStatus
empStatusStringEmpStatus
monthlyIncomeFloatMonthlyIncome
reqCoverageFloatreqCoverage
insurRejectedBooleanInsurRejected
empInsuranceBooleanEmpProvidedInsur
otherInsuranceBooleanotherInsurance
hasAIDSBooleanhasAIDS
isAlcoholicBooleanisAlcoholic
hasCancerBooleanhasCancer
hasKidneyStonesBooleanhasKidneyStones
hasTumorBooleanhasTumor
hasHiBPBooleanhasHiBP
hasDiabetesBooleanhasDiabetes
bmiFloatbmi
bmiResultStringbmiResult
insuranceAcceptedBooleaninsuranceAccepted
aidsRatingIntegeraidsRating
cancerRatingIntegercancerRating
alcoholicRatingIntegeralcoholicRating
kidneyStonesRatingIntegerkidneyStonesRating
tumorRatingIntegertumorRating
diabetesRatingIntegerdiabetesRating
hiBPRatingIntegerhiBPRating
healthRatingIntegerhealthRating

Table 4 shows the mapping of the input variables.

Table 4. Map the input variables for consuming the ILOG web service
NameTypeField Name
ilog.rules.outputStringStringiLOG_RES_String
ilog.rules.firedRulesCountIntegeriLOG_RES_NumRules
heightFloatHeight
weightFloatWeight
genderStringGender
dobTimedob
maritalStatusStringMaritalStatus
empStatusStringEmpStatus
monthlyIncomeFloatMonthlyIncome
reqCoverageFloatreqCoverage
insurRejectedBooleanInsurRejected
empInsuranceBooleanEmpProvidedInsur
otherInsuranceBooleanotherInsurance
hasAIDSBooleanhasAIDS
isAlcoholicBooleanisAlcoholic
hasCancerBooleanhasCancer
hasKidneyStonesBooleanhasKidneyStones
hasTumorBooleanhasTumor
hasHiBPBooleanhasHiBP
hasDiabetesBooleanhasDiabetes
bmiFloatbmi
bmiResultStringbmiResult
insuranceAcceptedBooleaninsuranceAccepted
aidsRatingIntegeraidsRating
cancerRatingIntegercancerRating
alcoholicRatingIntegeralcoholicRating
kidneyStonesRatingIntegerkidneyStonesRating
tumorRatingIntegertumorRating
diabetesRatingIntegerdiabetesRating
hiBPRatingIntegerhiBPRating
healthRatingIntegerhealthRating

Launching the workflow and testing the business rules in action

With the partner link selected and the variables mapped, you are ready to launch the workflow by completing the following steps.

  1. Validate the workflow by clicking File > Validate Workflow Collection.
  2. Click File > Transfer Workflow Collection to transfer the workflow to the object store and the Process Engine.
  3. While transferring, select an appropriate title for the document, and select a location on the objectstore to store the workflow.
  4. Select the default security settings for the document.
  5. Click File > Launch Main Workflow to launch the workflow. Remember that you selected Administrator as the default user for all the manual tasks. The launch window opens and acts as an input form, as shown in Figure 13.
Figure 13. Launch the workflow
Launch the workflow by filling in the input fields with any appropriate values and click Launch
  1. Complete the fields with any appropriate values, and click Launch, as shown in Figure 13.

The automated-underwriting task is executed. If the rule engine gives a positive response, the task is routed to the email notification task. If the rule engine gives a negative response, the task is routed to the human underwriters task.

To verify the results, click Tasks > Inbox from the workplace, and click the step processor for the work item.


Fine-tuning with tips and tricks

Consider using the following ideas to optimize your work.

  • If you use the same variable names in both Rule Studio and IBM FileNet P8 Process Designer, the mapping of the variable in the invoke step is done automatically.
  • If you use the WSDL for the latest rule set version, you can modify the rules and deploy them as minor versions without affecting the workflow. The workflow uses the latest rule set for its execution.
  • When you have a large set of rules that act on the same set of variables organized in the form of records (for example, from an Excel® spreadsheet), use the ILOG JRules import function. It enables you to import an Excel file and create a decision table.
  • Instead of the example XSD file, you can create your own basic XML file with different variables and types to develop an XSD file in order to create a XOM.

Using web service integration: an alternative to HTDS

There are two ways in which IBM FileNet P8 BPM and IBM WebSphere ILOG JRules can achieve web services integration. As described under Configuring the workflow invoke step to execute the business rules, you can use the HTDS WSDL directly within your process workflow and map the input and output variables. Or, you can generate a web service client for the rule set using the code generator function of ILOG Rule Studio. To use the code generator function, create a Java® component that makes web service calls using the generated client and then integrates the component with the process workflow. See Resources for best practices regarding configuration and deployment and for product documentation to use this method.


Conclusion

This article described how to integrate IBM FileNet P8 BPM with IBM WebSphere ILOG JRules using web services. It also detailed the steps for developing and deploying your business rules using the provided tools. A solution where IBM FileNet P8 BPM is used in conjunction with JRules enables rapid changes to business decisions, which in turn helps an organization to affirm its position in today's competitive market. The solution improves the agility of the business processes and provides proper tooling for each of the stakeholders.

Acknowledgments

Our deepest gratitude to the following reviewers who spent their valuable time reviewing and giving their suggestions and comments on all aspects of this article:

  • Chris Berg - Product Manager (WebSphere BRMS)
  • Andy J Ritchie - ILOG Development Integration & Synergy (WebSphere BRMS)
  • Jiehua Eva Lu - Technical Alliance Manager (WebSphere BRMS)
  • Srinivas Nv Gannavarapu - Advisory Software Engineer (Enterprise Content Management)

Resources

Learn

Get products and technologies

  • Build your next development project with IBM trial software, available for download directly from developerWorks.

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management, WebSphere, SOA and web services, Industries
ArticleID=487561
ArticleTitle=Integrate IBM FileNet P8 BPM with IBM WebSphere ILOG JRules using Web services
publish-date=11112010