Saturday, January 1, 2011

Exception Handling using EAI Queue Business Service

Hello My Dear Friends, A Very Happy New Year to all of you. 

Let's start this new year with post on a Business Service(BS) - EAI XML Queuing Service, I recently got to know about this BS while I was getting one Knowledge Transfer session from my friend cum colleague Rishikesh Bhise. Rishikesh is a Siebel EAI Consultant. He is a very passionate guy for his work.

As the name suggest, this BS is used as a queue to store messages. These message can be temporarily stored or permanently based on requirement. Primarily, this BS is used for logging the message in a transaction with external system. Moreover, you can also use this BS and the table underneath as an Error/Exception Handling System, totally out of box functionality. In the Siebel Application, you can view these queue and error messages at Administration Integration->EAI Queues. The upper list applet will show you the Queue Name and below applet will show you the Queue Messages.

This business service can be very handy for logging error/exceptions. In one of my earlier project, we did not know about this BS and we created a new table and new BS to log the exceptions and errors. Now, after knowing about this BS, I learn one thing how a small piece of information can make a big change in Design. Nobody can do anything in this regard, only experience and reading can help you.

Now, let me tell you how you can use this BS to log exceptions. We have used this BS in a workflow. We have taken out one error exception connector from our Siebel Operation Steps, Subprocess  step, Business Service step etc. These exception steps combines to go to one Business Service Step.The properties for this step are as below:
Name: Log Error Message
Business Service Name: EAI XML Queuing Service
Business Service Method: Add Message

The Input Arguments for this step are as below:
Comments: User Error Message Process Property of the Workflow 
QueueName: Name of the Queue You want to add the message into.This is the queue name under which all your message will get stored.
ReferenceID: Expression as "GetUserProfile_"+[&Process Instance Id]
ReferenceValue2: Any message, you can get this message by catching the error in the script(Try and Catch blocks)
SiebelMessage: Process Property for Siebel Message, this must be of data type Hierarchy. You can use BS "PRM ANI Utility Service" and method "CreateEmptyPropSet" to create an Blank Property Set. The input for the BS method is Hierarchy Name(this can be a Literal)
Status: Error in Processing

The Output Arguments can be as below:
ActivityId: Row Id of the new Queue Entry
FileName: File name of the Siebel Message XML Created.

There are some blogs which also talks about this Business Service. EAI-Queue-For-Error-Handling