Siebel Enterprise Integration Manager Administration Guide > EIM: Examples of Common Usage > Examples of Resolving Foreign Keys >

Example 1: Error Message "This is a foreign key value in the base table and the values in the interface table did not resolve to existing values."


EIM reports the low-severity error that follows when the foreign key value in the base table does not match the value in the EIM table.

NOTE:  This error example is based on the Siebel version 7.7 data model.

EIM_SRV_REQ

------------

CAT_CTLG_BI

CAT_CTLG_TYPE_CD

CAT_CTLG_NAME

CAT_CTLG_VER_NUM

CAT_CTLG_CAT_ENDDT

CAT_CTLG_CAT_NAME

Base table:

S_CTLG_CAT_SR

-----------

CTLG_CAT_ID

This is a foreign key value in the base table and the values in the interface table did not resolve to existing values. Verify that the IF columns correspond to existing base table rows. This failure caused the rows to be eliminated from further processing for this secondary base table. However, processing of the rows WILL continue for other destination base tables.

Resolution

To resolve the foreign key value, you must find the user key columns in the foreign key table. Based on multiple columns, user keys are used to uniquely identify rows within tables for EIM processing.

Table 1 lists the user key attributes and base table columns for the EIM_SRV_REQ interface column discussed in this example.

Table 1.  User Key Attributes and Base Table Columns for the EIM_SRV_REQ Interface Column
EIM_SRV_REQ Column
User Key Attribute
Base Table Column

CAT_CTLG_BU

CTLG_ID/BU_ID/NAME

S_BU.NAME

CAT_CTLG_TYPE_CD

CTLG_ID/CTLG_TYPE_CD

S_CTLG.CTLG_TYPE_CD

CAT_CTLG_NAME

CTLG_ID/NAME

S_CTLG.NAME

CAT_CTLG_VER_NUM

CTLG_ID/VERSION_NUM

S_CTLG.VERSION_NUM

CAT_CTLG_CAT_ENDDT

EFF_END_DT

S_CTLG_CAT.EFF_END_DT

CAT_CTLG_CAT_NAME

NAME

S_CTLG_CAT.NAME

The following example task shows how the user key plays a role to identify the base column for corresponding EIM columns for the above scenario.

To resolve the foreign key value

  1. Identify the foreign key table to which S_CTLG_CAT_SR.CTLG_CAT_ID points.
    1. In Siebel Tools, in the Object Explorer list, go to the Table object and query for the S_CTLG_CAT_SR table.
    2. Navigate to the Column object and query for the CTLG_CAT_ID column.
    3. Verify that the foreign key table value is S_CTLG_CAT.
  2. Find the user key columns defined in the S_CTLG_CAT table.
    1. In Siebel Tools, in the Object Explorer list, go to the Table object and query for the S_CTLG_CAT table.
    2. Navigate to the User Key object and select the U1 index (S_CTLG_CAT_U1).
    3. Navigate to the User Key Column object and verify that the User Key columns for S_CTLG_CAT are CTLG_ID (FK), EFF_END_DT, and NAME.
  3. In Siebel Tools, identify the foreign key table to which S_CTLG_CAT.CTLG_ID points: S_CTLG
  4. Find the user key columns defined in the S_CTLG table: BU_ID (FK), CTLG_TYPE_CD, NAME, and VERSION_NUM
  5. Identify the foreign key table to which S_CTLG.BU_ID points: S_BU
  6. Find the user key columns defined in the S_BU table using Siebel Tools: NAME
  7. Based on the above results, populate the following interface columns as listed in the table below to resolve the S_CTLG_CAT_SR.CTLG_CAT.ID foreign key.
Interface Column Name
Instructions

CAT_CTLG_BU

Populate with S_BU.NAME value from Step 6.

CAT_CTLG_TYPE_CD

Populate with S_CTLG.CTLG_TYPE_CD value from Step 4.

CAT_CTLG_NAME

Populate with S_CTLG.NAME value from Step 4.

CAT_CTLG_VER_NUM

Populate with S_CTLG.VERSION_NUM value from Step 4.

CAT_CTLG_CAT_ENDDT

Populate with S_CTLG_CAT.EFF_END_DT value from Step c.

CAT_CTLG_CAT_NAME

Populate with S_CTLG_CAT.NAME value from Step 2.

Siebel Enterprise Integration Manager Administration Guide