You are here

Siebel EIM

How are CREATED and CREATED_BY columns populated using EIM?

In standard Siebel applications, ‘CREATED’ and ‘CREATED_BY’ are system columns that will be automatically populated when importing data via EIM. The starting time of the EIM server task and login information of the employee starting the EIM server task populates these columns. There is no EIM mapping from the Siebel Interface tables to the CREATED and CREATED_BY columns in any of the base tables.

The following interface tables are an exception. They have a mapping into the ‘Created By’ column: EIM_LITERATURE, S_ACTIVITY_IF, S_APPT_IF, S_CONTACT1_IF, S_CONTACT2_IF, S_CONTACT_IF, S_FSCT_ACCNT_IF, S_FSCT_OPTY_PRD_IF, S_FSCT_OPTY_IF, S_FSCT_POSTN_IF, S_FSCT_PROD_IF, S_FUL_IF, S_FUL_ITEM_IF, S_LITERATURE_IF.

However, Siebel applications support extensions made to the database and modifications made to the user interface. Given below is a one way to accomplish this:

1. Add two extension columns to a base table and give them unique names (that is, "X_CREATED_DATE", "X_CREATOR"). 

2.Add two extension columns to the corresponding interface table.

3. Map extension columns in the interface table to the extension columns in the base table. 

4.Configure the applications so that two new extension columns will be displayed in user interface. 

5.Populate data via EIM, GUI or VB/OLE.

How can users determine if there is an interface mapping to a particular table or column and which interface tables or columns can be used for importing to this base table or base column?

This information pertains to Siebel version 3.x, 4.x, 5.x, 6.x and 7.x.

In order to find this information, please follow the steps outlined below:

1. Launch the Siebel client with /h option and navigate to the view in the Graphical User Interface (GUI) that has the field.

2. Choose Help > About View

3. Note which applet the field belongs to

4. Launch the Siebel Tools client

5. Navigate to the Applet Object in the Object Explorer

6. Find the applet identified in step 2 by querying for it in the "Applets" applet under 'Name' column

7. In the Object Explorer, drill down the Applet object

8. For a List Applet drill down on the List object to reach the List Column Child object. For a Form Applet select the control child branch of the applet. Then go to step 10.

9. In the List Column applet, the Display Name value that matches the field name on the GUI will be seen.

10. Select the value in the "Field" field and copy it to the clipboard

11. Go back to the Applet level. Right click on the applet identified on step 6 and
chooses "Go to Business Component" For version 7: drilldown on the link in the 'Business Component' column

12. The Business Component that contains the applet will be the new location.

13. In the Object Explorer, drill down to the child object "Single Value Field"

14. Find the field that copied to the clipboard in the Single Value Fields Applet

15. Select the value in the "Column" field, which is the physical column name in the database.

16. In the Object Explorer, go back to the Business Component level.

17. *** The Value for the "Table" field" field in the Business Component Applet is the physical table in the database ***

18. In the Objects Explorer, switch to the "Flat" tab For version 7: make sure the objects are displayed in the Object Explorer by selecting them to be displayed first. From the pulldown menu go to View -> Options -> Select the tab 'Object Explorer. Select the needed objects, otherwise you won't be able to search for an object in the 'Flat' tab of the Object Explorer

 

Siebel Version 5.x, 6.x and 7.x:

19. Select Object "Attribute Mapping"

20. In the "Attribute Mappings" Applet, QBE for the records with Name set to the column name in step 15

21. *** "Interface Table Data Column" field holds the name for the IF column that maps to the base column

22. "GParent EIM Interface Table" field holds the name for the IF table that contains the mapped column.

 

Further information on this subject can be found in:

Version 7 Bookshelf: Siebel Tools Reference Volume 1 of 2 > Data Objects Layer > EIM Interface Tables > Attribute Mapping object type.

This information is available in Siebel Tools by querying on the Target Table and Target Column fields in the IF Mgr Column Mapping object using the Flat tab. To determine which interface tables map to the particular table or column, check the GParent Table and Parent Column fields under this tab. If no records are returned with Type="IMPORTS_TO", then a mapping is currently not available to that particular table or column.

Refer to the "Siebel Interface Manager Mappings Screen" section of the Open Interfaces Concepts chapter of the V3 Administration Guide or the "Interface Table Mappings" section of the Enterprise Integration Manager Concepts chapter of the V4 Administration Guide for further details on using this view.

Can the PRIV_FLG column of S_CONTACT base table be updated using EIM? (Private_Flag is used to enforce Personal Contacts)

No. The S_CONTACT.PRIV_FLG is not part of the user key to the S_CONTACT table. However, it is included in the criteria used by Enterprise Integration Manager (EIM) to locate an existing row in the S_CONTACT table (It is a required column, but not a part of user key). Currently it is not possible to update the S_CONTACT.PRIV_FLG using EIM. For contacts loaded using EIM, the only supported value for the PRIV_FLG is "N". This specification can be enforced by adding FIXED COLUMN=CON_PRIV_FLG, 'N' in the ifb file.

Why does the Interface Manager continue processing even when multiple rows fail a pass?

The Enterprise Integration Manager (EIM) is designed for importing large volumes of data. Most failures are caused by data errors. It is usually faster and easier to correct the data errors and resubmit the corrected rows as part of a subsequent batch than to reprocess an entire batch.

Is it possible to delete or merge records through Interface Manager that have the same user primary key and different conflict IDs?

It is not possible to delete or merge these types of records through Enterprise Integration Manager (EIM).

How can I tune my EIM batches to improve performance?

Here are some options that can be tried to improve Enterprise Integration Manager (EIM) performance:

Check to make sure all the standard indices are in existence for the tables involved.

Limit tables and columns to be processed using ONLY BASE TABLES/COLUMNS configuration parameters to minimize the work that EIM has to perform.

Consider switching off Siebel transaction logging during the EIM run. This will definitely improve performance; however, it must be balanced with the need for mobile users to re-extract afterwards.

Try different batch sizes. Often, large batch sizes are not the most efficient. Siebel Systems recommends that customers use a batch size no more than 5000 rows, preferably less than 2000 rows in a single batch.

Try using batch ranges (BATCH = x-y). This allows users to run with smaller batch sizes and yet avoid the startup overhead on each batch.

Perform regular table maintenance on interface tables. Frequent insert or delete operations on interface tables can cause fragmentation in the table. The database administrator will know how to detect and correct fragmentation in the EIM interface tables.

Delete batches from interface tables on completion. Leaving old batches in the EIM interface table will waste space and could adversely affect performance.

Run independent EIM jobs in parallel. EIM jobs that have no interface or base tables in common can be run in parallel.

Set the USING SYNONYMS parameter to false in the .IFB file to indicate to EIM that account synonyms do not need to be checked.

Avoid using the UPDATE PRIMARY KEYS parameter in the IFB file.

 

ORACLE INSERT APPEND MODE. The default value is FALSE, which means EIM does not use use append mode for insert at EIM process step 9, avoiding a deadlock when running parallel EIM processes. If you need to improve step 9 performance, you can set the value to TRUE. *

Delete and Merge performance is improved if you create some specific temporary indices first. Please refer to Siebel Enterprise Integration Manager Administration Guide, Version 7.5, Creating Temporary Indexes for more details *

If using Oracle database, ensure that Oracle rule-based optimizer is used. Siebel Systems has highly recommended the Oracle rule-based optimizer because it provides the consistent behavior needed for effective performance tuning.

If all else fails, set "Trace Flags"=1 and "SQL Trace Flags"=8 and rerun the batch. The resulting task log will identify slow running steps and queries.

 

Note:

For Siebel eBusiness Application Version 7, this is documented in the Bookshelf: Siebel Enterprise Integration Manager Administration Guide > Frequently Asked Questions > Performance Questions.

For Siebel eBusiness Application Version 6, this is documented in the Bookshelf: Siebel Enterprise Integration Manager Administration Guide > Advanced Usage > Questions and Answers > Q. How can I tune my EIM batches to improve performance?

  • Valid only for version 7.5.x

 

How to import data to a LOV Type column?

When importing data from _XMIF or some other Interface table users might encounter the following error message in the trace file:

[ERR00] Interface table: [ERR00] S_XXXX_XMIF (Interface for XXXX Built-In M: 1 Extension Table) [ERR00] -------------- [ERR00] [ERR00] Base table: [ERR00] S_XXXX_XM (Account M: 1 Extension) [ERR00] ------------ [ERR00] TYPE (Type) [ERR00] This column contains a bounded picklist value and the value given does not [ERR00] correspond to a value in the list-of-values table for the given picklist type.

Siebel Version 7 log file message (example):

Process [Import Account 1] had 1 row fail
on EIM_ORG_EXT_XM for batch 100 in step 4, pass 104:
Invalid value for bounded picklist column. (severity 6, row eliminated)

Interface table:
EIM_ORG_EXT_XM (EIM_ORG_EXT_XM)
--------------
TYPE (Type)

Base table:
S_ORG_EXT_XM (Account M:1 Extension)
------------
TYPE (Type)

This column contains a bounded picklist value and the value given does not correspond to a value in the list-of-values table for the given picklist type. You can add values through the UI or through the S_LST_OF_VAL_IF interface table.

This failure caused the rows to be eliminated from further processing for the target base table. This failure will prevent these rows from being imported at all.

This error message indicates that either a picklist has not been created for this column (TYPE) or the value in the IF table for this column (TYPE) does not correspond to one of the values in the picklist for this column. To resolve this, make sure that:

 

a. A picklist already exists for this column
 

b. The value being imported for this column corresponds to one of the values in the picklist.

For example: Assume that the import is into the S_ORG_EXT_XM table. Do the following:

 

1. Find LOV type for S_ORG_EXT_XM

Go into Siebel Tools, select 'Types' tab, click on 'Table'

Create a query to find S_ORG_EXT_XM table

With S_ORG_EXT_XM table selected, expand the 'Table' tree control in the Object Explorer and select the 'Column' tree control. Find the 'Type' column by selecting 'T' on the alpha bar.

With 'Type' column highlighted, find the following two attributes in the Properties window:
Lov Bounded: TRUE Lov Type: ORG_EXT_XM_TYPE

 

2. Find ORG_EXT_XM_TYPE via GUI

Go into the Siebel application and access all available screens, by using the Site Map (View > Site Map). The Site Map provides hyperlinks to all screens and views

Select the Application Administration screen hyperlink

Select the List of Values view hyperlink

Query on the 'Display Value' column for ORG_EXT_XM_TYPE to make sure that the picklist already exists

 

3. Add values for this bounded picklist

 

Add picklist values via Graphical User Interface (GUI):

1. In the Siebel application navigate to the List of Values view and create a new record.

Note: To navigate to the List of Values view please select Screens > Application Administration > List of Values in Siebel versions 5 and 6. In Siebel 7 use the Site Map as described above.

2. In 'Type' column, type ORG_EXT_XM_TYPE.

3. In 'Display value' column, insert any value to use for this type. (A Language Name will need to be specified in the GUI for version 6.0 and version 7.)

4. Repeat step 3 until records are created for all values to have in this picklist

Add picklist values via Enterprise Integration Manager (EIM):

1. Populate S_LST_OF_VAL_IF table, set TYPE column to 'ORG_EXT_XM_TYPE', set VAL column to any value to use for this type. Make sure to populate all the required fields in S_LST_OF_VAL_IF table. (EIM_LST_OF_VAL is the interface table that is recommended to use for version 6.0 and version 7, where LOV_TYPE and LOV_VAL are the equivalent columns.).

2. Repeat step 1 until all records are inserted into IF table for all values to have in this picklist.

3. Import data from S_LST_OF_VAL_IF (or EIM_LST_OF_VAL for version 6.0 and version 7) to S_LST_OF_VAL via EIM.

After new values are added, use these values to populate TYPE column in S_ORG_EXT_XMIF table. Please note that when importing data via User Interface, Siebel Client will check the PickList property for each field in a certain business component. When using EIM to import data into base columns, EIM will check the LOV Type property defined for each column in a base table. It is possible to insert data into a particular column via GUI but not via EIM since they are looking at different properties.

What are the various Enterprise Integration Manager Interface Table Keys and do they need to be populated

There are three types of keys present for Siebel interface tables. They are User Key, Required User Keys, and Non-Required User Keys. Before performing an Enterprise Integration Manager (EIM) process, it is very important to examine which columns are defined as User Key columns, which are Required User Keys. User keys cannot be updated using EIM. EIM can be used to update non-user key columns only based on user key columns.

 

User Key: These columns are used by EIM to identify a record in a table. In the Siebel Interface Table Reference Guide each of the tables has their User Keys defined under the User Key column. Typically a number of columns will be marked as being part of the userkey.

Required User Key: This column or columns is the minimum portion of the User Key that has to be populated during an IMPORT, in order for EIM to be able to successfully insert the record into the base table. For example, to import into S_ORG_EXT, the user would need to populate the EIM_ACCOUNT.name, EIM_ACCOUNT.ACCNT_BU user keys, EIM_ACCOUNT. DISA_CLEANSE_FLG, EIM_ACCOUNT.PROSPECT_FLG Prospect Flag and EIM_ACCOUNT.PRTNR_FLG .
EIM_ACCOUNT.LOC is the second User Key but it is not a required part of the account. Then EIM will not fail to insert the account if this column is set to null.
When reviewing the Interface Table, keep in mind that there might be other required columns in the base tables that should be populated as well. For example: On the S_CONTACT table the S_CONTACT.PRIV_FLG which is not part of the user key is a required column.

 

Non-Required User Key: This column or columns does not have to be populated for IMPORT but when updating, merging, deleting using delete exact, etc. users might need to populate this if the column is already populated in the base table. If this is the case then it should be populated in the interface table as well otherwise EIM will fail to identify the record.

 

For example: There is an account in the system, S_ORG_EXT.name = ACCOUNT1, S_ORG_EXT.loc= LOCATION1. If the user wants to import an address for this account via EIM_ADDR_ORG, they need to ensure that both EIM_ADDR_ORG.ACCNT_NAME and EIM_ADDR_ORG.ACCNT_LOC are populated with the correct values; otherwise EIM will fail to identify the account in S_ORG_EXT.

If the account in S_ORG_EXT does not have any location, S_ADDR_ORG_IF.ACCNT_LOC does not need to be populated when an address is imported and associated with this account.

Why is the SQL not traced in the EIM tasks log file despite setting SQL Trace Flags to 8?

This happens when the Enterprise Integration Manager (EIM) component's Component Event Configuration - SQL Tracing Event Type log level value is not set to 4.

Set the Component Event Configuration for the SQL Tracing Event Type to 4 in order to enable SQL tracing. For 7.0.x, the defaulted value is not 4, and need to be set explicitly.

 For version 7:

It has a default value of 1, which means it only writes events of "severity" level of Informational (1) or more severe.

To set the Component Event Configuration, please follow the guidelines in Bookshelf Documentation for Siebel eBusiness Applications Version 7.0, Siebel Server Administration Guide, Chapter 4 Using the Server Manager GUI, Event Logging Administration, Configuring Component Events section:

 

1. Navigate to: View > Site Map > Server Administration > Components.

2. In the Server Components applet, select the Enterprise Integration Mgr server component.

3. Select the Component Event Configuration view tab.

4. In the Component Event Configuration list applet, select the event type SQL Tracing.

5. In the Log Level field, change the log level from 1 to 4

6. Step off the row to save changes.


 

How can file attachments be imported via EIM?

1. Put the file to be attached in the Siebel_Server\input directory (i.e. ABC.doc)

 

2. In the EIM_SR_DTL table, populate:

SR_SR_NUM

SR_BU

ATT_FILE_NAME ('ABC')

ATT_FILE_EXT ('DOC')

ATT_FILE_SRC_TYPE  ('FILE')

 

3. Run EIM to import file attachment to S_SR_ATT table.

 

4. A new .saf file will be generated in the file system after EIM loading.  

Pages

Subscribe to Siebel EIM