Siebel EIM >  SBL-EIM-00425 All rows in interface table failed

SBL-EIM-00425 All rows in interface table failed

EIM Contact does not update PR_OU_ADDR_ID error SBL-EIM-00425

APPLIES TO:
Siebel Enterprise Integration Manager - Version 7.5.2.216 [16084] and later
z*OBSOLETE: Microsoft Windows 2000
Product Release: V7 (Enterprise)
Version: 7.5.2.216 [16084]
Database: Oracle 9.2.0.2
Application Server OS: Microsoft Windows 2000 Server SP 3
Database Server OS: Sun Solaris 5.6

 

SYMPTOMS
I’m trying to resolve pr_ou_addr_id for our contact records. I have attached my import and export ifb files. I have no problem exporting the records, but when I try to import them back I get the following error:

Process [Contacts] had all rows fail

EIM_CONTACT2 for batch 1976:
Import processing failed for all rows. (severity 3)

All rows specified for importing in this process failed. Either no rows were specified or all rows could not be imported into the base tables.

All rows failed to be processed for this interface table. Either the data in the rows is invalid for import or row specifications did not match any existing base table rows for export, delete or merge.

(compmain.cpp 16(1554) err=100425 sys=0) EIM-00425: All rows in interface table failed.
(smisched.cpp 17(820) err=100425 sys=0) EIM-00425: All rows in interface table failed.

I have been using the following sql to resolve bu id’s

update EIM_CONTACT2 set
CHRC_CALL_LST_BI = (select min(OI.ROW_ID) from S_BU OI where OI.NAME = CHRC_CALL_LST_BU)
,CONPRD_ACCNT_BI = (select min(OI.ROW_ID) from S_BU OI where OI.NAME = CONPRD_ACCNT_BU)
,CON_BI = (select min(OI.ROW_ID) from S_BU OI where OI.NAME = CON_BU)
,CON_CAMP_SRC_BI = (select min(OI.ROW_ID) from S_BU OI where OI.NAME = CON_CAMP_SRC_BU)
,CON_LSTCMPWVSRC_BI = (select min(OI.ROW_ID) from S_BU OI where OI.NAME = CON_LSTCMPWVSRC_BU) ...

CAUSE
Configuration/ Setup

SOLUTION
Customer encountered the above mentioned error by using EIM to set the S_CONTACT.PR_OU_ADDR_ID.

Resolution:

First of all, we found that customer used EIM_CONTACT2 to populate S_CONTACT.PR_OU_ADDR_ID, which is the table mentioned in the Siebel Enterprise Integration Manager Administration Guide > Importing Data > Editing the Configuration File for Import Processing > Parameters Used for Imports in Both the Header and Process Sections > Table 11. According to this table, EIM_CONTACT2 is used to MISC SQL for S_CONTACT.PR_OU_ADDR_ID. However, this information is incorrect, since EIM_CONTACT2 does not have a mapping for this column, not it cannot be used to MISC SQL.
The correct EIM table for this primary column is EIM_CONTACT table.
A Bug #10473948 has been logged to address this documentation defect.

Second of all, we found that EIM was used to update only this column during EIM update process.
Unfortunately, EIM MISC SQL does not work if user does not include any other non-user key column.
The reason is that when EIM invokes MISC SQL, it invokes the additional step 11, which is not part of normal EIM step (1-10).
During EIM step 7-8, EIM checks for updated data and try to update the record in this step and recognize if there is any primary column need to be updated (which is worth while to invoke step 11).
If user is updating only primary columns, then EIM will regard the data is duplicate ones.

Therefore, the workaround of this case is to update non-user key column (which is not much usage, such as COMMENTS field) along with primary columns that customer wish to update.

Third thing we found out that S_ADDR_ORG was not included in the ifb file.
Since S_CONTACT.PR_OU_ADDR_ID gets the information from the S_ADDR_ORG, it is necessary to include this table and populate the EIM table for it.

Once customer accomplished all of these and change some minor things in customer’s environment (which is specific to this customer’s case only), customer was able to import the data into S_CONTACT.PR_OU_ADDR_ID correctly.