Siebel Tutorial on EIM and Invoking EIM.
Interface Table
- Staging area for data to be imported, updated or merged into base tables via EIM (used for exported data too)
- EIM does not perform data cleansing
- Delete table data after processing
- Have three columns that MUST be populated:
# IF_ROW_BATCH_NUM = number to id all records for this batch
# ROW_ID = unique id for record in batch (1, 2, 3)
# IF_ROW_STAT = i.e. FOR_IMPORT, FOR_DELETE.. updated during run
- IMPORTED = success for all target/destination tables
- PICKLIST_VALUES = failed b/c lov not found
- REQUIRED_COLS = faild b/c one require column was null
- DUP_RECORD_EXISTS = failed because a record already exists
- FOREIGN_KEY = failed b/c fk could not be resolved
- PARTIALLY_IMPORTED = success for target base table, not for 2nd’ry
- T_ column s (i.e. T_DELETED _ROW_ID) are temp. used during runs
How do we get data in?
# Load using non-Siebel vendor utilities (i.e. DTS, bcp, SQLLoader)
# Write programs (i.e. PLSQL to modify/cleanse data)
Base Table
- User data is stored in one or more based tables in Siebel
- Relationships between them depend on primary/foreign keys using Siebel’s Row_ID
- RowId = PK for EVERY table
User key
- Users keys used to uniquely ID a row for EIM (to prevent the duplication of records)
Enterprise Integration Manager (EIM)
- Server task that manages exchange of data between external data in interface tables and user data in base tables
- Uses Config file (*.ifb) to “know” where/what to do
# Imported, merged, deleted, exported
# Which int tables and which base tables
# Must specify:
- Batch Number (i.e. 200)
- Type (i.e. Import)
- Table (i.e. EIM_PROD_INT)
- Destination table (i.e. S_PROD_INT)
- Default values (i.e. DEFAULT COLUMN = SALES_FLG = “Y”)
For delete jobs, there are additional properties
- Delete Exact = deletes row in base tables with user key values specified in the EIMtable; delete is cascaded; should be used for non-target base tables
- Delete matches = rows based on a where clause
- Delete All rows = deletes all rows in a named table
- DELETE ROWS = FALSE (prevents deletes)
Verify:
(1) With SQL against EIM tables + base tables
(2) Log files
(3) Client application
Have a processing order (i.e. tables referenced via fk must be loaded first)
Referential Integrity
- User key column mappings (i.e. Person Id) are used to resolve ROW_Ids for base tables.. (i.e. is this an existing record or a new record.. then really uses row-Ids for maintaining referential integrity)
- Cannot use SQL to populate user data in base tables because relationships are complex and you cannot auto-generate a unique row id with SQL (Siebel application generates this)
Server Manager
- EIM runs as an OS process writing log entries, reads ifb file, loads dictionary and executes EIM step.
- Invoked via server manger in GUI or Command Line
No comments :