Transports and Interfaces: Siebel eBusiness Application Integration Volume III > Java Message Service Transport > Configuring the JMS Transport >
Sending and Receiving Messages with the JMS Transport
The procedure below describes how to set up the Siebel application to send a message to an external system using the EAI JMS Transport and receive a corresponding reply from the external system. To send and receive messages with the JMS Transport
- Set up a JMS queue to receive messages from the Siebel application and give the queue an easy-to-identify name, such as fromSiebel.
Refer to your JMS provider documentation on how to administer, monitor, and define new persistent queues.
- Set up a JMS queue to send messages to the Siebel application.
Refer to your JMS provider documentation on how to administer, monitor and define new persistent queues.
- Give the queue an easy-to-identify name, such as toSiebel.
- Create a message in the queue.
NOTE: In order to test this scenario adequately, you must have a partner application that can place a valid message for the Siebel application in the queue.
- From the Site Map choose Administration - Business Process > Workflow Processes.
- Configure and deploy a workflow process for sending a message out and receiving a message in response using the EAI JMS Transport.
Define the flow as shown in the following figure.
For details on the Business Process Designer, see the Siebel Business Process Designer Administration Guide.
- Create the following process properties in the Process Properties applet:
|
|
|
|
|
OrderXML
|
Binary
|
In
|
|
|
JMSConnectionFactory
|
String
|
In
|
examples.jms.ConnectionFactory
|
JNDI name of the JMS connection factory |
JMSReceiveQueue
|
String
|
In
|
examples.jms.toSiebel
|
JNDI name of the queue |
JMSSendQueue
|
String
|
In
|
examples.jms.fromSiebel
|
JNDI name of the queue |
JMSReceiveTimeout
|
String
|
In
|
180000
|
|
Order Message
|
Integration Object
|
In
|
|
|
- Set up the first step of the workflow to use the Siebel Order ASI with the QueryById method to query the information from the Siebel database using the following input and output arguments:
|
|
|
|
PrimaryRowId
|
Process Property
|
|
Object Id
|
|
|
|
|
Order Message
|
Output Argument
|
|
SiebelMessage
|
- Set up the second step of the workflow to use the EAI XML Converter with the IntObjHierToXMLDoc method to convert the data extracted from the Siebel database to XML using the following input and output arguments:
|
|
|
|
GenerateProcessingInstructions
|
Literal
|
False
|
|
SiebelMessage
|
Process Property
|
|
Order Message
|
|
|
|
|
OrderXML
|
Output Argument
|
|
<Value>
|
- Set up the third step of the workflow process, after Start, to use the EAI JMS Transport with the SendReceive method using the following input and output arguments:
|
|
|
|
<Value>
|
Process Property
|
|
OrderXML
|
ConnectionFactory
|
Process Property
|
|
JMSConnectionFactory
|
ReceiveQueue
|
Process Property
|
|
JMSReceiveQueue
|
ReceiveTimeout
|
Process Property
|
|
JMSReceiveTimeout
|
SendQueue
|
Process Property
|
|
JMSSendQueue
|
|
|
|
|
OrderXML
|
Output Argument
|
|
<Value>
|
- Set up the fourth step to use the EAI XML Converter with the XMLDocToIntObjHier method to convert the XML message to an Integration Object using the following input and output arguments:
|
|
|
|
<Value>
|
Process Property
|
|
OrderXML
|
|
|
|
|
Order Message
|
Output Argument
|
|
SiebelMessage
|
- Set up the last step to use the Siebel Order ASI with the Synchronize message to update the Siebel database using the following input and output arguments:
|
|
|
|
SiebelMessage
|
Process Property
|
|
Order Message
|
|
|
|
|
Order Message
|
Output Argument
|
|
SiebelMessage
|
- Save and deploy the workflow process.
It is recommended that the Workflow Process Simulator be used for testing purposes.
NOTE: In order to test this scenario adequately, you must have a partner application that can accept the message and return a response. The correlation ID of the response message must be set to the message ID of the message originally sent by the Siebel application.
|