Integrating IBM Business Process Manager with WebSphere Message Broker

This article describes three approaches to integrating IBM Business Process Manager V7.5.1 with WebSphere Message Broker V7 -- WebSphere MQ, web services, and service component architecture (SCA) -- and then shows you how to use the first approach to set up communications between IBM Business Process Manager and WebSphere Message Broker.

Anand Chandramohan (anandcha@us.ibm.com), Technical Enablement Specialist, IBM Software Services for WebSphere, IBM

AnandNatraj (Anand) Chandramohan is a Technical Enablement Specialist on the IBM Software Services for WebSphere team and is based in Austin, TX. He provides deep technical expertise on SOA, process integration, and service-oriented modeling and architecture (SOMA). He has nine years of experience in business integration, and he helps implement end-to-end SOA solutions for customers and business partners in various industries, including healthcare, insurance, and telecommunications. Anand is an Open Group Master Certified IT Specialist, and his areas of expertise include ESBs, WebSphere Application Server, WebSphere Dynamic Process Edition, and all aspects of BPM and SOA, including development, deployment, performance, and governance. You can contact Anand at anandcha@us.ibm.com.



Harmeet Singh (harsingh@us.ibm.com), Software Engineer, Industry Solutions -- Defense Operations Platform Development team, IBM

Harmeet Singh is a Software Engineer on the Industry Solutions -- Defense Operations Platform Development team and is based in Gaithersburg, MD. He has four years of experience in systems integration in the areas of business integration, workflow, and WebSphere Message Broker. Harmeet has a degree in Computer Science and he joined IBM in 2003. You can contact Harmeet at harsingh@us.ibm.com.



29 August 2012

Also available in Russian

Introduction

This article shows you three ways to integrate IBM® Business Process Manager V7.5.1 and WebSphere® Message Broker V7 (hereafter called Message Broker) -- WebSphere MQ, web services, and SCA. The article then uses a sample application called the Loan Requisition Process to show you how to implement the first approach -- using WebSphere MQ to transfer data between IBM Business Process Manager flows and the Message Broker stack.

Prerequisites

  • WebSphere Business Process Manager Advanced V7.5.1
  • WebSphere Message Broker V7.0.0.1
  • WebSphere MQ V7.0.1

Business process overview

This article uses the Loan Requisition Process to demonstrate the three ways to integrate IBM Business Process Manager 7.5.1 with Message Broker. In this process, a customer applies for a loan at a financial institution, and the financial institution then determines the eligibility of the customer and decides whether to approve the loan. The process includes a human review to ensure a sound lending decision. The process invokes steps such as Check Credit Score and Verify Address on Message Broker, which is the service provider for these services. If the loan is approved, the process sends an approval notification to the customer, and starts generating the paperwork required to grant the loan and complete the Loan Requisition Process:

Figure 1. Loan Requisition Process
Loan Requisition Process

Importing the initial solution

Download and import the initial solution at the bottom of the article. It contains default human service implementations for each of the activities, and it saves time by giving you a starting point in building the integrations. You will then go step-by-step and replace the human service implementation for each activity with the integration services that invoke the flows running on Message Broker.

  1. Import LoanRequisitionProcess -- InitialSnapshot_BPM751.twx.
  2. Start the Process Center server, log in to the Process Designer tool as admin/admin and click Import process app on the right-hand side. Import the initial snapshot and then click Next:
    Figure 2. Importing initial snapshot
    Importing initial snapshot
  3. Import the Loan Requisition Process application:
    Figure 3. Importing Loan Requisition Process application
    Import Loan Requisition Process application

    If you encounter any failures during the import, see this tech note.

  4. After importing the process, open it by clicking Open in Designer:
    Figure 4. Open process in Process Designer
    Open process in Process Designer
  5. You can run the process now to get an idea of the steps involved in determining whether to approve a loan request. But at this point the process contains only default human service implementations, and does not invoke any real services. Furthermore, only the default code path will execute because no conditions have been specified. You can also examine the variables and data mapping for each activity:
    Figure 5. Run process
    Run process

Defining points of integration

The following table summarizes how you will implement each activity in the business process diagram (BPD):

Table 1. Activity implementation choices
ActivityActivity implementationIntegration with Message BrokerInteraction pattern
Receive loan requestHuman serviceNoneNone
Check credit scoreIntegration serviceUsing WebSphere MQAsynchronous
Verify customer addressIntegration serviceUsing web servicesSynchronous
Do manager reviewHuman serviceNoneNone
Generate loan documentsAdvanced integration serviceUsing SCAAsynchronous
Reject loanHuman serviceNoneNone

Implementing the WebSphere MQ integration

This section shows you how to integrate WebSphere MQ with IBM Business Process Manager V7.5.

Creating resources for WebSphere Message Broker and WebSphere MQ (Channels, queues, queue managers, and broker)

Message Broker resources

This section shows you how to create a local broker through the Brokers view.

  1. Start the Message Broker Toolkit and switch to the Message Broker Application Development perspective.
  2. In the Brokers view, right-click on Brokers and select New => Local Broker.
  3. Enter a name for the broker and the broker queue manager. On Microsoft® Windows®, you also need to enter a username and password, which are used to configure a Windows service to run the broker.
    Figure 6. Create local broker view
    Create local broker view
  4. Click Finish to create the broker. The broker is displayed in the Brokers view:
    Figure 7. Local broker displayed in Brokers view
    Local broker displayed in Brokers view
  5. In the Broker Toolkit, select File => Import => Project Interchange => BPM_BRK.zipproject:
    Figure 8. Import projects displayed in Projects view
    Import projects displayed in Projects view
  6. Right-click the execution group, and click Deploy. The Resources dialog box opens. You can choose to deploy resources from the workspace, or BAR files from the file system:
    1. Specify the type of resource to deploy by selecting the BAR files from the workspace radio button. The available resources for that category are listed.
    2. Select BPM_BRK.bar to deploy.
    3. Click OK.

MQ Resources

In this section, you will create local queues, channels, and a listener used by IBM Business Process Manager and by the Message Broker flows.

  1. Start MQ Explorer, and in MQ Explore Navigator view, expand BPMQMRG Queue manager.
  2. Under BPMGMRG, right-click on Queues, select New => Local Queue, and create two new queues named REQUESTQ and RESPONSEQ:
    Figure 9. Local queue displayed in MQ Explorer Navigator view
    Local queue displayed in MQ Explorer Navigator view
  3. Under the same BPMQMGR, open the Advanced folder and select Listeners => New => Listener at port 5414. Start the Listener:
    Figure 10. Listeners displayed in the MQ Explore Navigator view
    Listeners displayed in the MQ Explore Navigator view
  4. Under the same BPMQMGR, open the Advanced folder and select Channels => New => Server connection channel name it BPMS:
    Figure 11. Channels displayed in MQ Explorer Navigator view
    Channels displayed in MQ Explorer Navigator view

Message Broker flows

Implementing Credit Score Verification flow

This simple Compute flow picks a message from the input queue and sends a response to the output queue. The Compute node calculates the credit score using the following criteria:

  1. Verify that social security number is nine digits, otherwise set the credit score 0.0.
  2. If social security number is nine digits, subtract first three digits from 850 and take absolute value of the result:
    Figure 12. Credit Score message flow
    Credit Score message flow
  3. The incoming message is placed on the REQUESTQ queue by the IBM Business Process Manager workflow. The MQ input node parses the message as a blob object.
  4. After the message is placed on the queue, the Compute node formats it in the stream as a string, applies the above criteria to it, and places the response message on the RESPOSNEQ queue.
  5. IBM Business Process Manager collects the response message using a point-to-point Java class. It is included in the download file and it acts as an MQ client.
  6. The MQ client creates a connection using the hostname, listener port, channel, queue manager, and queue name. Here are the embedded SQL (ESQL) statements to formulate that incoming message:
    Figure 13. ESQL statements to formulate incoming message
    ESQL statements to formulate incoming message

Implementing Address Verification flow

The Address Verification flow is a simple web services SOAP input and SOAP reply flow with a Compute node. IBM Business Process Manager 7.5.1 issues a request to verify an address, and then this flow extracts the SOAP header and invokes the operation to verify the address. After the Compute note completes the verification, it sends a reply back to the IBM Business Process Manager workflow. The Compute note uses three criteria to verify the address:

  1. Check length of postal code and ensure that it contains numbers only.
  2. Check state abbreviation and ensure that it contains exactly two alphabetic characters.
  3. Check length of address and ensure it contains five numerical or alphabetic characters:
    Figure 14. Address Verification message flow
    Address Verification message flow
  4. The SOAP input node is mapped to the WSDL generated by the IBM Business Process Manager workflow. The properties are shown below:
    Figure 15. SOAP Input node properties
    SOAP Input node properties
  5. The Compute node has three functions -- verification using the three criteria above using ESQL. Here is the implementation:
    Figure 16
    Figure 16
  6. The SOAP reply sends the message to IBM Business Process Manager flow with an original message and IsAddresCorrect field updated by compute node using logic below:
    Figure 17
    Figure 17

Implementing Generate Loan Notification flow

  1. In this simple SCA flow, the SCA input is received from the IBM Business Process Manager workflow, and then the flow extracts the SOAP headers and passes the message to the Invoke operation.
  2. No reply is sent back to IBM Business Process Manager. You can extend this flow to send the data to a third-party application:
    Figure 18. Generate Loan Notification message flow
    Generate Loan Notification message flow
  3. The SCA input node uses a web services binding type imported from the IBM Business Process Manager inbound SCA request. Here are the details of the SCA Input node:
    Figure 19. SCA Input node
    SCA Input node

Authoring IBM Business Process Manager 7.5 flows

In this section, WebSphere MQ is used as the transport layer between IBM Business Process Manager 7.5.1 and Message Broker, and you invoke the Credit Score Verification flow running on Message Broker to compute the credit score. You will learn how to configure IBM Business Process Manager 7.5.1 to put a request message and get a response message from WebSphere MQ.

Sending messages to WebSphere MQ

  1. Switch back to the Process Designer and open the LoanRequisitionProcess. Create a WebSphere MQ Integration service to send a request message to WebSphere MQ.
  2. Right-click on the Check Credit Score activity and select Activity Wizard. In the wizard, select System Task, leave the other fields at their default values, and click Finish:
    Figure 20. Check Credit Score Activity Wizard
    Check Credit Score Activity Wizard
  3. Double-click on the Check Credit Score Activity to open the activity implementation.
  4. Rename the server script component to Serialize Message.
  5. Drag and drop a Java Integration component onto the canvas and name it Put Message to WMQ.
  6. Wire the flow as shown below:
    Figure 21. Check Credit Score flow
    Check Credit Score flow
  7. Open the Variables tab at the top and create a new private variable called mqInputMessage of type String:
    Figure 22. Create a private variable
    Create a private variable
  8. Switch back to the Diagram tab. Click on the Serialize Message script, and select Properties => Implementation. Paste the following line of code into the Script text box:
    Listing 1: Serialize Message Code
    tw.local.mqInputMessage=tw.system.serializer.toXml
    (tw.local.LoanApplication).toString(true);

    This line of code serializes the Loan Application business object to XML and then converts the XML to a String type.

  9. Configure this Java Integration component to send a message to WebSphere MQ:
    1. Click Put Message to WMQ.
    2. Select Properties => Definition. Click on Select beside Java class and select integration.jar => MQMessages(teamworks.MQMessages):
      Figure 23. Select Java class
      Select Java class
    3. For Method, select putMessage, as shown below:
      Figure 24. Select putMessage
      Select putMessage
  10. Select Properties => Data Mapping and fill out the data mapping screen as shown below:
Table 2. Data mapping for Put Message to WMQ
tw.local.mqInputMessageMessage content
"localhost"MQSeries server hostname
"BPMQMGR"MQSeries queue manager name
"BPMS"Channel
5414Port
"REQUESTQ"MQSeries queue name
  1. Ensure that the values you enter here are consistent with the ones you used while configuring the WebSphere MQ resources. The data mapping screen for Put Message to WMQ should look like this:
    Figure 25. Input data mapping
    Input data mapping
  2. Save your work.

You have now completed implementing the Check Credit Score system service, which will put a message on REQUESTQ on WebSphere MQ. The Credit Score Verification flow running on Message Broker has been configured to listen to REQUESTQ, process the message, and send a response message back to RESPONSEQ. The next section shows you how to handle this response message in IBM Business Process Manager.

Receiving messages from WebSphere MQ

This section shows you how IBM Business Process Manager 7.5 retrieves the response message from RESPONSEQ. The response message is returned by the Credit Score Verification flow running inside Message Broker.

Creating an undercover agent

An undercover agent (UCA) is started by an event. Events can either be a message or the result of a specific schedule. Messages can originate from a message event in a Business Process Diagram, a Web Service that you create, or from a message that you post to the JMS Listener. When a UCA executes, it invokes an IBM Business Process Manager service or a BPD in response to the event. When you include a Message Event in a BPD, you must attach a UCA to the Message Event. For example, when a message is received from an external system, a UCA is needed to trigger the Message Event in the BPD in response to the message.

You need to create an undercover agent, which is used to receive a message event from an external system (in this case the response message from WebSphere MQ) and invoke the appropriate service in response to the message.

  1. First, create an Undercover Agent handler. In the Project pane, click the plus sign next to Implementation, select General System Service, and create a service named Process Response from WMQ UCA Handler. The UCA Handler is typically used to specify any logic that is to be executed before delivering the message event to a business process such as transformation, enrichment, or conversion. In this case, there is no such requirement, so just wire the Start node to the End node.
  2. In the Diagram editor for the Process Response from WMQ UCA Handler general system service, wire the Start node to the End node:
    Figure 26. UCA Handler
    UCA Handler
  3. Switch to the Variables tab and create two input and output variables as shown below. Ensure you set the set the proper types for the variables. Save your work.
    Figure 27. UCA Handler variables
    UCA Handler variables
  4. Next, implement the Undercover Agent. Click the plus sign next to Implementation and choose Undercover Agent:
    Figure 28. Undercover agent
    Undercover agent
  5. Name the Undercover Agent Process Response from WMQ UCA.
  6. Choose the Schedule Type as On Event and select the attached service as Process Response from WMQ UCA Handler. Click Finish when done:
    Figure 29. Undercover agent
    Undercover agent
  7. The Undercover agent editor opens. Ensure that all fields are filled in correctly:
    Figure 30. Undercover agent
    Undercover agent
  8. Next, create a service that retrieves the response from RESPONSEQ in WMQ and invoke the undercover agent. Click the plus sign next to Implementation, select Integration Service, and create a new service called Process Response from WMQ. Open the Process Response from WMQ service.
  9. Drag and drop Java Integration, Server Script, and Invoke UCA components from the palette onto the canvas. Label them as follows:
    • Java Integration: Get message from WMQ RESPONSEQ
    • Server Script: Extract content
    • Invoke UCA: Invoke process response from WMQ UCA
  10. Wire the components as shown below:
    Figure 31. Process response from WMQ
    Process response from WMQ
  11. Configure the Get Message from the WMQ RESPONSEQ activity. You may encounter errors if you try to use the default getMessage Java class from the integration.jar file, so the download file includes a sample MQClient packaged in a JAR file to retrieve the response message from WebSphere MQ. Use the supplied MQClient sample to get the response from WebSphere MQ. Here is the code listing for the MQClient sample, which has been packaged as MQgetsample.jar:
    Listing 2: MQClient to pick messages from WMQ.
    package com.ibm.sample.mq;
    
    import java.io.IOException;
    
    import com.ibm.mq.MQC;
    import com.ibm.mq.MQEnvironment;
    import com.ibm.mq.MQException;
    import com.ibm.mq.MQGetMessageOptions;
    import com.ibm.mq.MQMessage;
    import com.ibm.mq.MQQueue;
    import com.ibm.mq.MQQueueManager;
    
    /**
     * 
     * Assumes that the queue is empty before being run.
     * 
     * Does not make use of JNDI for ConnectionFactory and/or Destination
     * definitions. Gets the message from Queue.
     * 
     * 
     */
    @SuppressWarnings("deprecation")
    public class MQClient {
    
       static int openOptions = MQC.MQOO_INPUT_EXCLUSIVE | MQC.MQOO_BROWSE
             | MQC.MQOO_INQUIRE;
    
       /**
        * Main method
        * 
        * @param args
        */
       public static void main(String[] args) {
    
          MQClient t = new MQClient();
    
          t.getMQMessage("localhost", 5414, "BPMS", "BPMQMGR", "RESPONSEQ");
    
       }
    
       public String getMQMessage(String hostname, Integer port, String channel,
             String qManager, String qName) {
          String msgText = null;
          try {
             MQEnvironment.hostname = hostname; // host to connect to
             MQEnvironment.port = port; // port to connect to. If not set, this
             MQEnvironment.channel = channel; // the CASE-SENSITIVE name of the
                // SVRCONN channel on the queue
                // manager
             MQQueueManager qMgr = new MQQueueManager(qManager);
             if (qMgr.isConnected()) {
    
                System.out.println("debug true");
             } else {
                System.out.println("debug false selse");
                ;
             }
             MQQueue myQueue = qMgr.accessQueue(qName, openOptions);
    
             System.out.println("debug");
    
             System.out.println(myQueue.isOpen() + "");
             ;
          System.out.println("Number" + myQueue.getCurrentDepth());
             if (myQueue.getCurrentDepth() > 0) {
    
                MQMessage getMessage = new MQMessage();
                MQGetMessageOptions gmo = new MQGetMessageOptions();
                gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
    
                myQueue.get(getMessage, gmo);
                msgText = getMessage.readStringOfByteLength(getMessage
                   .getTotalMessageLength());
    
                gmo.options = MQC.MQGMO_MSG_UNDER_CURSOR;
                myQueue.get(getMessage, gmo);
             }
             myQueue.close();
             qMgr.disconnect();
             System.out.println("\\nSUCCESS\\n" + msgText);
    
          } catch (MQException e) {
             System.out.println(e);
          }
    
          catch (IOException p) {
             System.out.println(p);
          }
          return msgText;
    
       }
    
    }
  12. Download MQgetsample.jar. Then click the plus sign next to Files and choose Server File.
  13. Click the Browse button next to File Location and choose the file. The MQClient has now been imported into the project.
  14. Go back to the Process Response from WMQ diagram and select Get Message from the WMQ RESPONSEQ activity.
  15. Go to Properties => Definition.
  16. For Java class, select MQgetsample.jar => MQClient (com.ibm.sample.mq.MQClient).
  17. For the Method, select getMQMessage(String, Integer, String, String, String).
  18. Navigate to Properties => Data Mapping and fill out the Input and Output Mappings as shown in the following table:
Table 3. Data mapping for Get Message to WMQ
Input mappingParameter
"localhost"Parameter 1
5414Parameter 2
"BPMS"Parameter 3
"BPMQMGR"Parameter 4
"RESPONSEQ"Parameter 5
Output mapping
Output mappingParameter
Return valuetw.local.MQResponse
Figure 32. Input and output data mapping
Input and output data mapping

You may see a warning icon next in the Output mapping, because the MQResponse variable has not yet been created. You will create this variable in the next step. Switch to the Variables tab and create the private variables shown below:

Figure 33. Variables used in process response from WMQ
Variables used in process response from WMQ
Table 4. Variables used in process response from WMQ
Variable nameVariable type Function
MQResponseStringContains response message received from RESPONSEQ
CreditScorefromWMBStringCredit Score output from Credit Score Verification flow in Message Broker
CustomerSSNfromWMBIntegerSSN returned by Credit Score Verification flow in order to correlate the response to the correct process instance.
  1. Select the Extract Content activity and then select Properties => Implementation. Paste the following lines of code into the Script text box:
    Listing 3: Extract Content Code
    tw.local.CustomerSSNfromWMB = Number(tw.local.MQResponse.substr(41, 9));
    log.info("SSN returned by Credit Score Verification flow in Message Broker   
        :"+tw.local.CustomerSSNfromWMB);
    tw.local.CreditScorefromWMB=tw.local.MQResponse.substr(19, 3);
    log.info("Credit Score computed by Credit Score Verification flow in Message Broker   
        :"+tw.local.CreditScorefromWMB);
  2. Click on the Invoke Process Response from WMQ UCA activity and select Properties => Implementation.
  3. For the attached Undercover Agent, click on the Select button to select the Process Response from WMQ UCA that you created in Step 5.
  4. Navigate to the Data Mapping screen and fill it out as shown below:
    Figure 34. Data mapping for UCA
    Data mapping for UCA
  5. Save your work.

So far, you have developed an Integration Service to process the response message delivered by Message Broker onto the RESPONSEQ in WMQ. You also created an undercover agent to listen for this message event and invoke the undercover agent handler. The only step that remains is to deliver this message event to the LoanRequisition business process using an intermediate message event.

Creating an intermediate message event

You can include an intermediate message event in your BPD when you want to model a message event received during execution of the steps in a process. Intermediate message events can be attached to activities within your BPDs or they can be included in the process flow, connected with sequence lines.

The next step is to create an intermediate message event in the LoanRequisition BPD to receive the credit score output from Message Broker. The credit score verification flow in Message Broker returns two key pieces of information -- the computed credit score, and the SSN of the customer who made the request. The Message Broker flow simply copies the SSN from the request message onto the response message.

The undercover agent created in the prior steps delivers the message event to the BPD via the intermediate message event. The SSN from the Message Broker response will be correlated against the SSN held by the process instance. If the correlation works, the message event delivered by the UCA will be accepted, and the process instance will resume execution. Here's a diagram of the flow of events:

  1. Switch back to the LoanRequisitionProcess BPD. Delete the wire between Check Credit Score and Customer Address Verification
    Figure 35. Loan Requisition BPD with intermediate event
    Loan Requisition BPD with intermediate event
  2. Drag and drop an Intermediate Event onto the diagram. Label the event as Process Response from Message Broker. Wire the flow as shown below:
    Figure 36. Loan Requisition BPD with intermediate event
    Loan Requisition BPD with intermediate event
  3. Select the Intermediate event and navigate to Properties => Implementation.
  4. Ensure that you have the Message Intermediate Event and Receiving options selected.
  5. For the Attached UCA, click on Select to choose the Process Response from WMQ UCA.
  6. Ensure that the Consume Message text box is checked. Your screen should now look like this:
    Figure 37. Intermediate event implementation
    Intermediate event implementation
  7. You can configure message events to consume messages. If you do, when a message is delivered to a running process, the message is consumed by the first message event in the BPD that can accept it (as determined by the UCA that is attached to the message event). When a message is consumed, it will not be processed again by that message event, or any other message event in the BPD instance that can accept it, should the execution of the BPD instance loop back and reach the same message events. If a new instance of the message is delivered to the process instance, this message is available for consumption again and is accepted by the message event.
  8. Still in the Properties sheet for the Intermediate event, select Data Mapping and fill out the screen as shown below. Ensure that the CustomerSSN field is used for correlation: click the radio button next to CustomerSSN (Integer):
    Figure 38. Data mapping for intermediate event
    Data mapping for intermediate event
  9. Save your work.

You have now completed building the IBM Business Process Manager 7.5.1 integration with Message Broker using WebSphere MQ as the transport. The next section shows you how to test the BPD.

Testing the business process

To test the LoanRequisition BPD, use the Process Inspector in Process Designer. You can also use the Process Portal tool available at http://<SERVER_NAME:PORT/portal, for instance at http://localhost:9080/portal

  1. Switch to the Inspector view in the Process Designer and click on Run Process icon as shown in the figure below.
    Figure 39. Run process
    Run process
  2. A process instance is launched. Under the Process Instances tab in the left hand pane, you can view the details of this process instance. In the right hand pane, you can view the current step of the process instance. In the process diagram, you should see a red token on top of the Receive Loan Request, which indicates that this process instance is currently at that step. In order to complete this task and continue to the next task, click on Runs the selected taskafter selecting the Receive Loan Request step:
    Figure 40. Run task
    Run task
  3. If you're prompted for security credentials, select admin for userid and admin for password. A browser is launched to display the Receive Loan Application Coach. Fill out the screen with some values as shown below and click OK. Close the browser and return to the Process Designer.
    Figure 41. Receive Loan Application coach
    Receive Loan Application coach

The first step of the process is now complete and the flow proceeds to the next step -- Check Credit Score. Click on the Refresh icon above the top right pane to show the current step of the process.

  1. Check Credit Score is implemented as a System task and therefore will complete automatically. In this step, the LoanRequisition Process makes a connection to WebSphere MQ and puts a message onto the REQUESTQ. This message is in turn processed by the Credit Score Verification broker flow, which computes the credit score and drops the response message with the score back onto the RESPONSEQ. In the next step, you fire the undercover agent to pick up the response message.
  2. Refresh the process instance list again, and you should see that the execution has reached Process Response from Message Broker intermediate event (observe the red token in the BPD). The process is now awaiting an external event with the correct correlation message to trigger the intermediate event. Next, run the Process Response from WMQ integration service which will pick up the response message from RESPONSEQ in WMQ and trigger the undercover agent. The undercover agent will in turn deliver this message event to the LoanRequisition BPD which is waiting at the intermediate event step.
  3. Open the Process Response from WMQ integration service: Select Implementation => Process Response from WMQ and click on Run Service:
    Figure 42. Run service
    Run service
  4. As explained above, running the integration service will pick up the message from WMQ RESPONSEQ, extract the message contents and invoke the undercover agent.
  5. Switch back to the Inspector view and select the LoanRequisition BPD. The message delivered by the undercover agent and the message held by the process instance correlated successfully, so the intermediate event accepted the message delivered by the undercover agent. Click on the Refresh icon and note that the flow has progressed to the Customer Address Verification step.
  6. The subsequent steps are all implemented as default human services. Use the instructions above to complete the LoanRequisition Process. You have now finished testing the business process.

Conclusion

Part 1 of this article series showed you how to use WebSphere MQ to integrate between IBM Business Process Manager and Message Broker. Part 2 will describe the two remaining integration touch points -- web services and SCA -- and show you how to use them to communicate between IBM Business Process Manager and Message Broker.

Figure 43. Integration touch points
Integration touch points

Acknowledgements

The authors would like to thank Ashok Iyengar, a Solutions Specialist with IBM Software Services for WebSphere, and Wangming Ye, a Senior Software Engineer and Certified Consulting IT Specialist with IBM Software Services for WebSphere, for providing a valuable technical review of this article.


Download

DescriptionNameSize
Code samplesolution.zip1.026 MB

Resources

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 WebSphere on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=834081
ArticleTitle=Integrating IBM Business Process Manager with WebSphere Message Broker
publish-date=08292012