DEFAULT COLUMN specifies a default value for an EIM column and it is used only when the column is null in the EIM table whereas FIXED COLUMN specifies a fixed value for an EIM column and the fixed value gets loaded in the base table overriding the value in the EIM table column.
The mandatory columns that need to be populated in an EIM table are:
INCLUDE is an optional parameter in the IFB file which indicates a sub process to execute. INCLUDE names a process to be included as part of this process. More than one process may be included in another process. All included processes execute before the process itself. This parameter can be used only in shell processes. A shell process uses the INCLUDE statement to invoke a sequence of processes in a single run.
EIM uses temporary columns to manipulate data during processing. For example, EIM might store the ROW_ID value for a Siebel base table in a temporary column. These column names begin with T_ and indicate the table or column for which they are used. Because EIM uses these columns internally during processing, these columns in EIM tables should not be manipulated.
USING SYNONYMS = FALSE saves processing time because queries that look up synonyms (as in case of Accounts) are not used.
The Siebel Data Model uses primary foreign keys (or primaries) to point from a parent base table to a child base table. Primaries enable business logic in the Siebel Data Model, such as identifying the primary position for an account. Moreover, primaries improve performance by eliminating repeating sub queries when data from both the parent table and the primary child table are displayed. If you do not use primaries, then you must execute a new query to identify any child records each time a parent record is displayed.
IFB file is a configuration file that the EIM engine reads to identify details like what kind od process need to be performed, the batch numbers to identify the records and other parameters. Its an ASCII text file with .ifb extension. Before one runs the EIM job, this IFB file's parameters needs to be configured according to ones requirements.
Follow the below steps:
This parameter specifies a user-defined SQL statement to be sent to the database server before other SQL statements for this process. This string is sent directly to the database and must be a single SQL statement suitable for immediate processing. This parameter can be used to set tracing for performance analysis. Only one SESSION SQL parameter can be used in each process section. This parameter cannot be used to insert or update data in Siebel base tables. EIM sends the SQL statement directly to the database and may cause data loss for Siebel Remote and Siebel Replication Manager.
The IFB file resides in the siebsrv/ADMIN folder on the server. E.g. D:sba81siebsrvADMINDefault.ifb
Follow the below steps:
Additionally there is a target table for each EIM table which you can see under EIM Interface Table object --> Target Table property.
EIM processes a record once for each batch, so for each record, MIN(ROW_ID) is processed, and the other record is marked as a duplicate i.e. IF_ROW_STAT is set to DUP_RECORD_IN_EIM_TBL for the duplicate record. If you enter the user key of a record with different attributes twice in the EIM table, only the record with the MIN(ROW_ID) will be imported or updated. The duplicate will be ignored.
Siebel Enterprise Integration Manager (EIM) is a server component in the Siebel EAI component group that transfers data between the Siebel database and other corporate data sources.
Every EIM table has one or more base table mappings which can be viewed in Siebel tools. Out of those base tables one would be the target base table which acts as primary base table for that EIM table. Rest of the base tables are called as non-target base tables. One can view the target base tables under EIM Interface Table object --> Target Table property.
A very common answer which people give to this "simple" question is that "Siebel doesn't allow inserts and updates, deletes etc directly into Siebel database." or some may say this is what Siebel has recommended and so on.
Though direct inserts and updates in the Siebel tables is highly not recommended, we can still do that if we are able to identify the direct tables and related tables in which data is to be inserted or updated.
The primary reason why we shouldn't be doing operation on Siebel tables directly is for following reasons:
Hence, Siebel has recommended that the in-built EIM technique be used for any type of data operations in the Siebel tables.
The different EIM functions are:
IF_ROW_STAT column in the EIM table contains the status of each records after processing like IMPORTED, DELETED, NOT_ALLOWED, MERGED etc. whereas IF_ROW_STAT_NUM column contains a zero (0) if the row was successfully processed to completion or the pass number where the failure occurred.
You cannot manually create a EIM column for an existing base table column. The solution is to run the EIM mapping wizard which will map all the new extended columns and the old columns which have no EIM column mappings currently.
Credentials mentioned in IFB file are overridden by the credentials stored at srvmgr level, so in this case it would not throw error.
Let’s take an example: Suppose a new column is extended in S_CONTACT and you need the corresponding EIM column to be generated.
Follow the below steps for running EIM mapping wizard:
Follow the below steps:
If both the parent table and the primary child table of a primary foreign key are mapped to the same EIM table, then once will see an explicit primary mapping for this primary foreign key under the table mapping of the primary child table.