Siebel Enterprise Integration Manager Administration Guide > EIM: Examples of Common Usage > EIM Import Process Examples >

Example of Troubleshooting the Import of Extension Columns


Use the guidelines that follow to troubleshoot an import failure that occurs when extension columns are added to some Siebel tables and the EIM import task failed to populate data to these columns.

To troubleshoot the import of extension columns

  1. Delete the diccache.dat file from the <siebel server>\bin directory and test the EIM task again.

    EIM will rebuild this file from the information in the repository if the file does not exist.

  2. Run the DBCHCK utility to make sure the EIM table in the repository is in synch with the EIM table in the database. For example, use the following command:

    dbchck /u SADMIN /p <SADMIN's password> /t <table owner> /r "Siebel Repository" /l dbchck.log /d /s <ODBC data source> <interface table name>

    NOTE:  For information on running the DBCHCK utility, see To check the repository using DBCHCK and DICTUTL.

    1. If the repository is not in synch with the database, log in to Siebel Tools, and in the Table object, select the EIM table records.
    2. Click the Apply and Activate buttons to apply and activate all changes on the EIM table to the database.
    3. Run the DBCHCK utility again.
  3. Follow the instructions to set event logging in Viewing the EIM Log File and run the EIM task.

    This generates a detailed EIM log file.

    1. Review the log file to see whether there are any errors causing the import failure.
  4. If the extension column:
    • is a foreign key or primary column, its mapping should only be created through the EIM Table Mapping Wizard, or by Siebel Expert Services.
      • If the extension column is a foreign key column, its foreign key mapping can be created by running the EIM Table Mapping Wizard on the base table of the extension column.
    • is a primary column for a M:M relationship (that is, an EIM table is defined in the extension primary column's Primary Inter Table property), its EIM Explicit Primary Mapping can be created by running the EIM Table Mapping Wizard on the intersection table.
    • is a primary column for a 1:M relationship (that is, no EIM table is defined in the extension primary column's Primary Inter Table property), its EIM Explicit Primary Mapping can be created by running the EIM Table Mapping Wizard on the primary child table (as defined in the extension primary column's Primary Child Table property).
  5. Check the mappings for the extension columns.
    1. Log in to Siebel Tools.
    2. Navigate to the EIM Interface Table object and query to select the interface table EIM Table Mapping.

      If the extension column:

    • is not a foreign key or primary column, it should only have an Attribute Mapping under its base table's EIM Table Mapping.
    • is a foreign key column, it should not have any Attribute Mapping defined. It should have a Foreign Key Mapping.
    • is a primary column, it should not have any Attribute Mapping or Foreign Key Mapping defined.

      If the extension primary column:

    • is for a M:M relationship, it should have an EIM Explicit Primary Mapping under its intersection table's EIM Table Mapping.
    • is for a 1:M relationship, it should have an EIM Explicit Primary Mapping under its primary child table's EIM Table Mapping.

Checking the Repository

Step 2 in To troubleshoot the import of extension columns asks you to run the DBCHCK utility to make sure the EIM table in the repository is in synch with the EIM table in the database.

Both the DBCHCK and DICTUTL utilities are run from the DOS prompt in the siebsrvr\bin\ directory. DBCHCK verifies that the physical schema is in synch with the repository. DICTUTL verifies that all dock objects and rule definitions are correct.

To check the repository using DBCHCK and DICTUTL

  1. Run the siebenv.bat file to make sure that the Siebel application environment variables are set correctly.

    NOTE:  There should be no quotes around the parameters in siebenv.bat.

  2. Make sure there are no quotes around the value to which SIEBEL_REPOSITORY is set.

    If this value is set incorrectly, you will encounter error messages.

  3. Run the DBCHCK utility to verify that the physical schema is in synch with the repository. A typical command to run DBCHCK and generate a log file is the following:

    Prompt>dbchck /S <ODBC_DATASOURCE> /U <USERNAME> /P <PASSWORD> /T <TABLE OWNER> /R <REPOSITORY> /L <LOGFILE> /D <CHECK_AGAINST_DICTIONARY> /A <ALL_TABLES>

    1. Use the /A option to specify whether you are running the DBCHCK against all tables; use a Boolean 'Y' (no quotation marks) to specify that you are.
    2. To view all of the options for DBCHCK, run DBCHCK at the DOS prompt without any options.

      This provides all the options that can be used in conjunction with DBCHCK. The following are some of the common options used in conjunction with DBCHCK:

      /S

      Specifies the ODBC source to use for the database.

      /U

      Specifies the username to log in to the database.

      /P

      Specifies the user password to log in to the database.

      /T

      Specifies the username of the table owner.

      /R

      Specifies the repository name for the dictionary.

      /L

      Specifies the log file name for errors.

      /D

      Checks tables against the dictionary only.

      /A

      Checks all Siebel tables in the database.

    3. Check the <LOGFILE> for unacceptable errors.

      Unacceptable errors may occur if data types are mismatched. Acceptable errors may occur if a schema object (such as a table or an index) is intentionally external to the repository.

  4. Run DICTUTL to verify that all dock objects and rule definitions are correct. A typical command to run DICTUTL and generate a log file is the following:

    Prompt>dictutl /C <ODBC_DATASOURCE> /U <USERNAME> /P <PASSWORD> /D <TABLEOWNER> /N <REPOSITORY_NAME> /A <IGNORE_DICTONARY_CACHE> y > LOGFILE.log

    Further command options are explained as follows:

    /A

    Y means ignore the dictionary cache.

    > LOGFILE.log

    LOGFILE is the log file that you designate for DICTUTL.

  5. Review the LOGFILE.log file to check for errors.
Siebel Enterprise Integration Manager Administration Guide Copyright © 2006, Oracle. All rights reserved.