No user key can be used for the Integration Component instance 'IO Name' error in Siebel

Error:

Error invoking service 'EAI Siebel Adapter', method 'Update' at step 'Workflow Step Name'.(SBL-BPR-00162)--No user key can be used for the Integration Component instance 'Integration Component Name'.(SBL-EAI-04397)

Steps to Reproduce:

  1. Created new Integration Component in Siebel Tools and set Id field (system default) as the Integration Component User Key.
  2. Created Data map in Siebel Client.
  3. Added a query step in workflow and get the response in Siebel Message process property. (EAI Siebel Adapter, Query)
  4. Added Data Map step and used above response. (EAI Data Transformation Engine,Execute)
  5. Added Update step and used the response of Data Map step. (EAI Siebel Adapter, Update)
  6. Deployed the workflow and run.

On Run received the above error.

Reason & Solution:

From the Workflow instance logs got the Siebel Message value (from Step 3 and 4) and on inspection found out that Id tag was missing. When checked and compare the Id field in Integration component and field which had the tag in Siebel Message, I have found out that Type field was set to System for Id field record. Simply changed it to Data. Complied and tested and error was gone and workflow was working as expected.

Other Reason & Solution:

You have made changes in Integration Component User Keys and compiled and when tested system throwing the same error. Possible reason is that from Siebel Tools Integration Object is 'Deployed to Runtime Database'.

If IO is deployed to runtime database Siebel will read the IO definitions from the database instead of SRF.Just Undeploy (right click on IO name in tools and select the Undeploy option from the menu) the Integration Object and bounse the server or restart the dedicated client. Now as IO is not in runtime database Siebel will read the IO definition from the SRF file (on which new change is compiled).

You will encounter the same behavior (not the error) if you have made modification to XML Tag or IC Filed and changes are not reflecting due to IO is deployed to Runtime Database with old defination.