I am going to discuss about some less known and used EAI siebel adapter arguments.
ObjectLevelTransactions: This input argument is used in Non query methods like insert, update, upsert. It accepts values true,false. When set to true, it executes each Object instance as a transaction. This means that if I have an IO instance with two parent IC instances, it will execute the transaction as two individual transactions. If one is getting errored out, the operation will not get failed. It will execute the second IO instance.
Remember that the whole IO instance is taken as one transaction. If child IC has an error, the whole transaction is errored out.
Example: If I have an Siebel Message Like this.
<List of Contact IO>
<Contact>
<Id>1-ABC</Id>
<Status>New</Status>
</Contact>
<Contact>
<Id>1-ABC</Id>
<Status>Old</Status>
</Contact>
</List of Contact IO>
The allowed list of value is only 'New'. So in this case, if I run EAI Siebel Adapter update, it will error out. But if I use ObjectLevelTransactions property to true in input, the first record gets updated and the second record will get rejected and it will have error message, error code in the output siebel message. We can filter the output message using the error message/code fields and capture errors.
Below is the example I tried:
I queried with [Account.Name]='AG Edwards & Sons, Inc' in EAI Account IO. I got 4 records.
I changed one field value to ensure that it errors out. I fired an update request, observed that there was no error. EAI Siebel Adapter Service did not error out.
But in the output xml, I can see the Error Message and Error Code for one record.
If ObjectLevelTransactions is set to false, the operation will error out.
I will discuss more about tracking errors in EAI siebel adapter in next post.
ObjectLevelTransactions: This input argument is used in Non query methods like insert, update, upsert. It accepts values true,false. When set to true, it executes each Object instance as a transaction. This means that if I have an IO instance with two parent IC instances, it will execute the transaction as two individual transactions. If one is getting errored out, the operation will not get failed. It will execute the second IO instance.
Remember that the whole IO instance is taken as one transaction. If child IC has an error, the whole transaction is errored out.
Example: If I have an Siebel Message Like this.
<List of Contact IO>
<Contact>
<Id>1-ABC</Id>
<Status>New</Status>
</Contact>
<Contact>
<Id>1-ABC</Id>
<Status>Old</Status>
</Contact>
</List of Contact IO>
The allowed list of value is only 'New'. So in this case, if I run EAI Siebel Adapter update, it will error out. But if I use ObjectLevelTransactions property to true in input, the first record gets updated and the second record will get rejected and it will have error message, error code in the output siebel message. We can filter the output message using the error message/code fields and capture errors.
Below is the example I tried:
I queried with [Account.Name]='AG Edwards & Sons, Inc' in EAI Account IO. I got 4 records.
I changed one field value to ensure that it errors out. I fired an update request, observed that there was no error. EAI Siebel Adapter Service did not error out.
But in the output xml, I can see the Error Message and Error Code for one record.
If ObjectLevelTransactions is set to false, the operation will error out.
I will discuss more about tracking errors in EAI siebel adapter in next post.
Thanks Khadar, but i got a question while using ObjectLevelTransactions, could you help me on this:
ReplyDeleteThe method is Insert, and IO has an user key, says it InterId.
Provide two ICs, the InterId is 1-1 and 1-2.
Execute insert, the two records will be insert into siebel table.
Then still insert above two ICs with InterId 1-1, 1-2, the expected output should be two error messages, the first says the 1-1 is existed in siebel, the second says 1-2 is existed in siebel.
But the actual output is the two error messages are both say the 1-1 is existed in siebel, which is the error messages is same.
Also tried with three and more records, if find a InterId existed in siebel first time, then the remain error messages of other InterId duplicate records will say the first encounted InterId.
Do you have any idea on this?
Hi,
DeleteThis is a product defect. Please check this document in Oracle support: EAI Siebel Adapter And Object Level Transactions Error Messages (Doc ID 1454076.1)
Regards,
Khadar
Thank you for providing good information from Kexlin
ReplyDeleteYou are in the right place for a perfect solution for any app development company in hyderabad. We are well known for delivering the best quality Mobile Application Development Solutions to our clients.