Siebel EIM >  EIM Data Loads for Phones failed with SBL-EIM-00999: IF table EIM_CON_DTL has cyclic dependencies (at S_CONTACT)

EIM Data Loads for Phones failed with SBL-EIM-00999: IF table EIM_CON_DTL has cyclic dependencies (at S_CONTACT)


APPLIES TO:
Siebel Enterprise Integration Manager - Version 7.8.2.3 SIA [19221] and later
z*OBSOLETE: Microsoft Windows 2000
Product Release: V7 (Enterprise) and above
Version: 7.8.2.3 [19221] Life Sci
Database: Oracle 9.2.0.8
Application Server OS: Microsoft Windows 2000 Advanced Server SP 4
Database Server OS: Microsoft Windows 2000 Advanced Server SP 4

 


SYMPTOMS
Extension columns in EIM_ACCNT_DTL,EIM_CON_DTL and EIM_ASSET have been created using the Mapping Wizzard.While trying to load phones related to Accounts and Contacts using the above mentioned EIM tables these are the errors that have been encountered.

Account Phones Error from the command line
Internal :The process exited abnormally and the Operating system could not get the exit code

Contact Phones Error from the Logfile
Error 999 : IF table EIM_CON_DTL has cyclic dependencies (at S_CONTACT)!
Error 205: Failed to load the application dictionary.

Account Phone Insert .IFB
[Siebel Interface Manager]
USER NAME = "SADMIN"
PASSWORD = "SADMIN"
PROCESS = IMPORT ACCOUNT

[IMPORT ACCOUNT]
Type = SHELL
INCLUDE = "Import Account Phone"

[Import Account Phone]
TYPE = IMPORT
BATCH = 999
TABLE = EIM_ACCNT_DTL
INSERT ROWS = S_PARTY,FALSE
UPDATE ROWS = S_PARTY,FALSE
INSERT ROWS = S_ORG_EXT_XM,TRUE
UPDATE ROWS = S_ORG_EXT_XM,TRUE
UPDATE STATISTICS = FALSE
ONLY BASE TABLES = S_PARTY,S_ORG_EXT_XM
ONLY BASE COLUMNS = S_PARTY.PARTY_UID,\
S_PARTY.PARTY_TYPE_CD,\
S_ORG_EXT_XM.PAR_ROW_ID,\
S_ORG_EXT_XM.TYPE,\
S_ORG_EXT_XM.NAME,\
S_ORG_EXT_XM.ATTRIB_34


Contact Phone Insert IFB

[Siebel Interface Manager]
USER NAME = "SADMIN"
PASSWORD = "SADMIN"
PROCESS = Import All

[Import All]
TYPE=SHELL
INCLUDE = "Import Contact Phone"

[Import Contact Phone]
TYPE = IMPORT
BATCH = 444
TABLE = EIM_CON_DTL
INSERT ROWS = S_PARTY,FALSE
UPDATE ROWS = S_PARTY,FALSE
INSERT ROWS = S_CONTACT_XM,TRUE
UPDATE ROWS = S_CONTACT_XM,TRUE
UPDATE STATISTICS = FALSE
ONLY BASE TAB...

CAUSE
Configuration/ Setup

Example of cyclical dependencies error message SBL-EIM-00999:

EIMTrace EIMTraceSubEvent 3 00009d9f51a819ff:0 2013-06-14 19:53:39 6/14/13 19:53 Error SBL-EIM-00999: IF table EIM_CATALOG has cyclic dependencies
EIMTrace EIMTraceSubEvent 3 00009d9f51a819ff:0 2013-06-14 19:53:39 (at S_CTLG)!
EIMError EIMErrorSubEvent 0 00009d9f51a819ff:0 2013-06-14 19:53:39
EIMError EIMErrorSubEvent 0 00009d9f51a819ff:0 2013-06-14 19:53:39 Error SBL-EIM-00999: IF table EIM_CATALOG has cyclic dependencies (at S_CTLG)!
EIMTrace EIMTraceSubEvent 3 00009d9f51a819ff:0 2013-06-14 20:09:57 6/14/13 20:09 Error SBL-EIM-00205: Failed to load the application dictionary.
EIMError EIMErrorSubEvent 0 00009d9f51a819ff:0 2013-06-14 20:09:57
EIMError EIMErrorSubEvent 0 00009d9f51a819ff:0 2013-06-14 20:09:57 Error SBL-EIM-00205: Failed to load the application dictionary

SOLUTION
Message 1
For the benefit of other users, here is an example of cyclical dependencies “Error SBL-EIM-00999: IF table EIM_SRC has cyclic dependencies (at S_CAMP_CALL_LST)!”

===
The cyclical dependencies in S_SRC, i.e. S_SRC.CAMP_CALL_LST_ID points back to its child table.
===

In this example, S_CAMP_CALL_LST is association between S_CALL_LST and S_SRC, so the user key columns S_CAMP_CALL_LST.CALL_LST_ID and S_CAMP_CALL_LST. SRC_ID (alternate unique key to S_CAMP_CALL_LST.ROW_ID) is made up of the primary keys from the 2 tables. S_SRC.CAMP_CALL_LST_ID (holds the value of S_CAMP_CALL_LST.ROW_ID) points back to S_SRC which is redundant and is causing cyclical dependencies error for EIM.

In customer’s case, the EIM_58494.log 7.8.2.3 [19221] ENU has the following:

EIMError EIMErrorSubEvent 0 0 2006-07-26 19:32:55 Error 999: IF table EIM_CON_DTL has cyclic dependencies (at S_CONTACT)!

Based on the example given, you can look at the extension columns for the tables mapped to EIM_CON_DTL to see if there is a cyclical dependency to S_CONTACT in Siebel Tools > Table. If you do have, you need to inactivate (click on Inactive field) such a foreign key mapping for extension column on the EIM_CON_DTL in Siebel Tools > EIM Interface Table > EIM_CON_DTL > EIM Table Mapping > tablename > Foreign Key Mapping.

Steps to resolve the issue:

1) Inactivate the Foreign Key mapping at the extension columns for the EIM Table.
2) Apply/Activate on the EIM table.
3) Remove the below files from <SIEBSRVR>\BIN
eimcolrelcache.dat
diccache.dat