Receiving, Dispatching, and Sending MSMQ Messages with MSMQ Receiver

The following procedure shows you how to set up your system to receive an inbound message from MSMQ by MSMQ Receiver, perform an action within a Siebel application based on that message, and then send a synchronous response back to the external system.

To receive, dispatch, and send messages using the EAI MSMQ Transport (MSMQ Receiver)

  1. Access the Windows Computer Management tool by choosing the Start menu, Programs, Administrative Tools, and then Computer Management.

  2. Set up an MSMQ queue to receive messages from the Siebel application.

    Give the queue an easily identified name, such as fromSiebel.

  3. Set up another queue to send messages to the Siebel application.

    1. Name the queue an easily identified name, such as toSiebel.

    2. Create a message in the queue.

    Note: To test this procedure adequately, you must have a partner application that can send a valid message for the Siebel application to the queue.
  4. Create a named subsystem for the MSMQ Receiver using the following lines:

    create named subsystem MyMSMQSubsys for subsystem MSMQSubsys with 
    MsmqQueueMachineName=SiebelServer1, MsmqPhysicalQueueName=fromSiebel, 
    MsmqRespQueueMachineName=SiebelServer2, MsmqRespQueueName=toSiebel
    
    create named subsystem SiebelEcho for subsystem EAITransportDataHandlingSubsys 
    with DispatchService="Workflow Process Manager", DispatchMethod=RunProcess, 
    DispatchWorkflowProcess="MyMSMQWorkflow"
    
    start task for comp MSMQRcvr with ReceiverConnectionSubsystem=MyMSMQSubsys, 
    ReceiverDataHandlingSubsystem=SiebelEcho, 
    ReceiverMethodName=ReceiveDispatchSend
    
    Note: The DispatchService and DispatchMethod parameters are optional.
  5. Set up a workflow in Siebel Tools to receive and dispatch a message from MSMQ. The workflow should contain the following steps, as shown in the following image:

    1. XML Converter (XMLto PropSet)

    2. Siebel Adapter (Upsert)

    Workflow for receiving and dispatching a message from MSMQ. This image is described in the surrounding text.
    Note: For details on the Business Process Designer, see Siebel Business Process Framework: Workflow Guide.
  6. Create the following process properties:

    Name Data Type In/Out Value

    Test Message

    Hierarchy

    In/Out

    Not applicable

    Test XML

    Binary

    In/Out

    Test Message from Siebel Server

    Error Code

    String

    In/Out

    Not applicable

    Error Message

    String

    In/Out

    Not applicable

    Object Id

    String

    In/Out

    Not applicable

    Siebel Operation Object Id

    String

    In/Out

    Not applicable

  7. Set up the first step of the workflow after Start to use the EAI XML Converter business service with the XMLDocToIntObjHier method to convert the XML message to a Siebel Message using the following input and output arguments:

    Input Argument Type Property Name Property Data Type

    <Value>

    Process Property

    Test XML

    Binary

    Property Name Type Output Argument

    Test Message

    Output Argument

    SiebelMessage

  8. Set up the second step to use the EAI Siebel Adapter with the Upsert method to update the Siebel Database, using the following input arguments:

    Input Argument Type Property Name Property Data Type

    SiebelMessage

    Process Property

    Test Message

    Hierarchy

    Note: To test this scenario adequately, you must have a partner application that can send a valid message for the Siebel application to the queue.
  9. Save the workflow.

    After running the workflow, confirm that the message is removed from the queue using the MSMQ Explorer. In this example, the Siebel Database is updated with the message in the fromSiebel queue. Also, a response message is in the queue specified by the MSMQRespQueueName and MSMQRespQueueMachineName arguments.