EAI Siebel Adapter is very widely used Business Service in Siebel. This business service is indispensable if you are working in Siebel EAI and very useful to do configuration tasks efficiently.
I have already described some novel implementation of using IO and EAI Siebel Adapter BS to improve performance and reduce scripting.
But today we are going to discuss the basic and most used method of this BS which is to Query Method.
Query Method of EAI Siebel Adapter takes a Row Id or a Search Spec as an Input and gives you a Siebel Message as Output. Let’s discuss both Ways.
Query using RowId: You need to provide 2 input arguments to the Method
- OutputIntObjectName: This should have the value of a valid IO name based on BO and BC for which you want to Query the record
- PrimaryRowId: This should contain the RowId of the record you want to Query.
Using this method is pretty straight forward but more often than not our query is based on certain condition such as Record should have Status = ‘Cancelled’ and Type = ‘Order’ then you need to provide the SearchSpec in order to query the record.
Query using SearchSpec: Again you need to provide 2 arguments to the Method
- OutputIntObjectName: Same as Above
- SearchSpec: A valid Search Spec for your query. Now, important thing to note here is that SearchSpec here is not like SearchSpec you provide in BC, Applet and other object and also not like you provide in eScript. Here SearchSpec has different format
Format of SearchSpec in EAI Siebel Adapter BS:
You need to provide the SearchSpec as IntegrationComponent.FieldName to explain it better lets take and example.
Requirement:
Query Service Request with ‘Status’ = ‘Open’ and Type = ‘Urgent’ and your IC name is Service Request. So, your SearchSpec would be:
[Service Request.Status] = ‘Open’ AND [Service Request.Type] = ‘Urgent’
If you want query where the condition involves a Child BC then you need to provide the name of child IC. For example
Requirement:
Query Service Request with ‘Status’ = ‘Open’ and has Activity of Type = ‘Closed’ where Activity is Child BC of Service Request. Your SearchSpec would be
[Service Request.Status] = ‘Open’ AND [Activity.Type] = ‘Closed’
Soon I will create a Video Tutorial of creating a workflow using both techniques. So, keep watching.

(6 votes, average: 4.33 out of 5)
6 Comments at "EAI Siebel Adapter - Query Method"
Hi Neel,
This was gud post on EAI Query method…
Hi Neal,
It is a nice one on EAI Query method…really very usefull…
can u plz help me on this….
i am using Searchspec and io as input…
the value to be evaluated for SearchSpec is coming from an xml file…in the workflow i use the finsquery and get that value from xml….now suppose the value is in property name customer id…then how should i use it as expression in SearchSpec….i tired as follows….
‘[ic name.field] = ”’ + [&customer id] + ””=>but this failed to work….
eagerly waiting for ur reply…thanks a lot….
Search Expression seems to be ok…
What kind of error you are facing. Just make sure for the below given points
1. Make sure Customer Id process property is not empty
2. Make sure you are using right method SearchSpec not PrimaryRowId
3. Make sure that input argument is of type Expression not Literal or Process Property.
if it still doesn’t solve then let me know the error and we see further
Thanks for the information neel…
now its working fine….
Can we use this Query method with boyh “PrimaryRowId” and SearchSpec inputs?
No, I am afraid you cannot.
But you can use Id in Search Spec which will be equivelant to PrimaryRowId argument. For example it can be
[ServiceRequest.Id] = ‘1-98Y67′
Comment Now!