Presentation is loading. Please wait.

Presentation is loading. Please wait.

SIEBEL EIM By Sukesh Tokshiya.

Similar presentations


Presentation on theme: "SIEBEL EIM By Sukesh Tokshiya."— Presentation transcript:

1 SIEBEL EIM By Sukesh Tokshiya

2 Objectives After completing this module you will Know following things: SIEBEL 7 Data Model. Different EIM Processes and their Use. Input to Base table Column Mappings. IFB creation and Optimizing the EIM process. Running EIM Process Error Handling in EIM Why you need to know Enables you to design EIM solutions for Import,Export,Update, Delete and Merge data into/from the SIEBEL database By Sukesh Tokshiya

3 SIEBEL DATA MODEL Over 2000 tables in the database
Three major types: Data, Interface, and Repository Data Tables Store the user data Business data Administrative data Seed data Transaction data for mobile users Are populated and updated: - By the users through the SIEBEL eBusiness applications By server processes such as Enterprise Integration Manager for bulk importing and exporting of data Have names prefixed with S_ Are documented in the SIEBEL Data Model Reference By Sukesh Tokshiya

4

5 SIEBEL DATA MODEL Prominent Data Tables
Prominent tables storing data for the major business entities Internal Product Service Request S_PROD_INT S_SRV_REQ ROW_ID NAME PART_NUM UOM_CD ROW_ID SR_NUM DESC_TEXT OWNER_EMP_ID RESOLUTION_CD Contact Opportunity S_CONTACT S_OPTY ROW_ID LAST_NAME FST_NAME MID_NAME ROW_ID BDGT_AMT NAME PROG_NAME STG_NAME By Sukesh Tokshiya

6 SIEBEL DATA MODEL Interface Tables
Are a staging area for importing and exporting data Are used only by the Enterprise Integration Manager server component Are named with prefix EIM_ Are documented in the Interface Tables Reference One EIM Table Can target Many Base Tables. Repository Tables Contain the object definitions that specify one or more Siebel applications Client application configuration UI, business, and object definitions Mappings used for importing and exporting data Rules for transferring data to mobile clients Each table has multiple columns to store user and system data - Defined by the Column child object definitions Columns determine the data that can be stored in that table Column By Sukesh Tokshiya

7 SIEBEL DATA MODEL User Key
Specifies columns that must contain a unique set of values Prevents users from entering duplicate records Is used to determine the uniqueness of records during data import operations Cannot be edited ( Exception in specific cases) INDEX Is a separate data structure that stores a data value for a column and a pointer to the corresponding row - Are used to retrieve and sort data rapidly Can be created by configurators (to produce a custom index) Should be inspected to assess performance issues for query and sort operations By Sukesh Tokshiya

8 SIEBEL DATA MODEL 1:M Relationships
Are captured using foreign key table columns in the table on the many side of the relationship M:M Relationships Are captured using foreign key table columns in a third table called the intersection table 1:1 Extension Table Is a special table that has a 1:1 relationship with a base table Foreign key for the relationship:Is located in the extension table Is named PAR_ROW_ID. Provides additional columns for business components referencing the base table A base and extension table can be considered as a single logical table Are used: To provide flexibility for both SIEBEL engineering and customer use Known as standard 1:1 extension tables To support multiple business components referencing the S_PARTY table By Sukesh Tokshiya

9 SIEBEL DATA MODEL Party Entity Refers to instances of entities that have access to records Person-related entities Organization-related entities Groupings created for access to master data Allows for grouping of instances of different types of entities Contact Account Employee Position Access Group User Division User List Partner Organization Person-related entities Grouping for access control Organization-related entities By Sukesh Tokshiya

10 Enterprise Integration Manager (EIM)
Server task that manages exchange of data between external data in interface tables and user data in base tables EIM reads a configuration file to determine: Whether data should be imported, merged, deleted,or exported Which interface table(s) and base table(s) are used and affected. User key column mappings in interface tables are used to resolve ROW_IDs for base tables, maintaining referential integrity You cannot use SQL to populate user data in base tables By Sukesh Tokshiya

11 Enterprise Integration Manager (EIM)
Enterprise Integration Manager (EIM) Processes Import Export Merge Delete By Sukesh Tokshiya

12 Enterprise Integration Manager (EIM)
Import Process Import Process is basically used to Insert or Update the data from external system. Identify and validate the data to be imported. Identify the column mappings and user key columns of the data to be imported. Recommended Import Order 1 Administrative NOTE: An example of administrative data would be a List of Values for Currency or Zip Code. 2 Business Unit 3 Positions 4 Accounts 5 Contacts 6 Employees 7 Products 8 Opportunities 9 Personal Accounts 10 Quotes 11 Documents 12 Forecasts By Sukesh Tokshiya

13 Enterprise Integration Manager (EIM)
Import Process Continued………. Recommended Import Order Continued…. 13 Fulfillment 14 Marketing Campaigns 15 CPG Promotion Management 16 CPG Product Movement 17 Service Requests 18 Product Defects 19 Activities and Appointments 20 Notes 21 File Attachments Required Initial Values for Special Columns Each row to be imported must contain the data you want to import and the appropriate values in the following columns: ROW_ID. This value, in combination with the nonempty contents of IF_ROW_BATCH_NUM, must yield a unique value. IF_ROW_BATCH_NUM. Set this value to an identifying number for all rows to be processed as a batch. IF_ROW_STAT. In each row to be imported, set this column to FOR_IMPORT to indicate that the row has not been imported. By Sukesh Tokshiya

14 Enterprise Integration Manager (EIM)
Import Process Continued………. Updating record Using EIM process. EIM table should be populated with proper User keys to Update Base table records. EIM table column is having value in it which is different from base table then and then only the base table value will be Updated. If EIM table column is having NULL value it will not affect the Base Table column. If we want to update base table with NULL value we have to use NET Change parameter User Key Values in Base table Column cannot be Updated ( Exception with some base table as new EIM table Introduced Specifically for updating User Keys). Insert and Update of Base table can be achieved by Specifying the proper Parameters in configuration file (IFB). By Sukesh Tokshiya

15 Enterprise Integration Manager (EIM)
Export Process Export Process is basically meant for exporting the data from base table into and populating the EIM tables. Exported data can be copied into Other data bases Preserved Column Values - The values for the LAST_UPD and CREATED columns in the interface tables will always contain the values for the LAST_UPD and CREATED columns from the target base table. You can verify export results by checking IF_ROW_BATCH_NUM equals to the batch number for the export. The value of IF_ROW_STAT should be EXPORTED.

16 Enterprise Integration Manager (EIM)
Delete Process To delete any record from SIEBEL we will delete the record by using SIEBEL DELETE process. EIM initializes the interface tables for deletion. It applies filter logic to select rows for deleting, insert interface tables rows that correspond to matching base table rows, or select rows with matching user keys in the interface tables. EIM updates other tables with rows containing foreign keys that point to newly deleted rows. Deletion process will delete/Update the corresponding record/s from tables where the row_id of record is referred as foreign Key

17 Enterprise Integration Manager (EIM)
Delete Process Continued………. Deletion Methods Supported EIM uses a combination of interface table row contents and configuration file parameter values to determine the method for selecting rows to be deleted. The following methods are supported: Delete rows in a SIEBEL base table with user key values specified in the corresponding interface table. Delete rows in the base table where the contents of a named column match those specified by a WHERE clause expression in the configuration file. Delete all rows in the base table regardless of interface table row contents or configuration file WHERE clause expressions. Caution: Do not use EIM to delete organizations. Using EIM to delete data from the Products base tables is also not recommended and can lead to inadvertent data integrity loss. By Sukesh Tokshiya

18 Enterprise Integration Manager (EIM)
Merge Process Merge process is basically meant for Merging two records. During Merge Process Identity the Parent record and Child records. All the references (row_id) of Child records will be replaced by parent record and Child records will be deleted. While Populating the EIM ,IF_ROW_MERGE_ID is used to distinguish between parent and child records by EIM process. For Parent Record IF_ROW_MERGE_ID is kept NULL and for Child record the row_id (EIM tables) of parent is populated. Can be used only two merge data from primary base table and not the secondary tables.

19 EIM Column Mappings Column Mapping is very Important process for designing EIM Solution. Determine the Entity which it is going to affect. Identify the INPUT column , corresponding EIM and Base Table and column it is going to affect. Identify the Intersection table ( if needed) for incoming data to be loaded. Identify the User key Values from INPUT file required to populate the EIM tables. Determine the column required for visibility of records and populate the values in it. Prepare a EXCEL document once you have identified the Mappings. By Sukesh Tokshiya

20 EIM Configuration File
EIM reads a configuration file that Specifies the EIM process to perform. There are two sections in IFB file Header and Process Section. IFB general Parameters Header Section. CONNECT ODBC System Data Source LOG TRANSACTIONS TO FILE Log transactions to file or table; TRUE/FALSE toggle;default is TRUE PASSWORD Database password PROCESS Initial/main process section to run [Siebel Interface Manager] Header section must use this reserved name TABLEOWNER Database tableowner, defined during installation USERNAME Database/Employee logon By Sukesh Tokshiya

21 EIM Configuration File
Process Section. General Process Parameters for the EIM Configuration File Command Description TYPE IMPORT, EXPORT, DELETE, MERGE, SHELL BATCH IF_ROW_BATCH_NUM Value to run against TABLE Name of EIM table. COMMIT EACH PASS Commit after each EIM pass; default is TRUE COMMIT EACH TABLE Commit after each base table; default is TRUE IGNORE BASE COLUMNS Do not process these columns IGNORE BASE TABLES Do not process these tables INCLUDE Subprocess to execute LOG TRANSACTIONS Default value depends on system preference ONLY BASE TABLES Process only these tables By Sukesh Tokshiya

22 EIM Configuration File
TRANSACTION SQL Post-commit SQL statement USE SYNONYMS TRUE/FALSE toggle; default is TRUE ROLLBACK ON ERROR Error rollback behavior; default is FALSE [Siebel Interface Manager] LOG TRANSACTIONS TO FILE = FALSE USE INDEX HINTS = FALSE USE ESSENTIAL INDEX HINTS = FALSE [Import_Address] TYPE = IMPORT TABLE = EIM_ADDR_PER BATCH = $BatchRange ONLY BASE TABLES = S_ADDR_PER UPDATE ROWS = S_ADDR_PER, FALSE ONLY BASE COLUMNS = S_ADDR_PER.ADDR_TYPE_CD,\ S_ADDR_PER.DISA_CLEANSE_FLG,\ S_ADDR_PER.ACTIVE_FLG,\ S_ADDR_PER.ADDR_NAME By Sukesh Tokshiya

23 EIM Configuration File
Import Process Specific Parameters. COMMIT OPERATIONS Docking Log row commit frequency; default is 0 DEFAULT COLUMN Default for IF column; DEFAULT COLUMN=ORG_CD, “Federal” FILTER QUERY SQL pre-process filter query fragment; FILTER QUERY=(ACCNT_NUM“1500”) FIXED COLUMN Set IF column to this literal; FIXED COLUMN=ORG_CD,“Commercial” INSERT ROWS Optional base table, TRUE/FALSE toggle; default is TRUE. MISC SQL Set primaries in import process NET CHANGE Do not update with NULL values; default is TRUE ONLY BASE COLUMNS Process only these columns PRIMARY KEYS ONLY Refresh only primary foreign keys for base tables; does not work In set-based mode; default is FALSE SET BASED LOGGING Specifies whether set based logging is enabled; default is TRUE TRIM SPACES Toggles space trimming; default is TRUE UPDATE ROWS Optional base table, TRUE/FALSE toggle; default is TRUE. By Sukesh Tokshiya

24 EIM Configuration File
Export Process Specific Parameters. Command Description EXPORT ALL ROWS Export all rows in tables; default is FALSE EXPORT MATCHES WHERE Clause fragment; EXPORT MATCHES=(NAME LIKE “GEN%”) CLEAR INTERFACE TABLE. Specifies whether existing rows in the interface table for the given batch number should be deleted. Valid values are TRUE (the default) and FALSE. [ By Sukesh Tokshiya

25 EIM Configuration File
Delete Process Specific Parameters. Command Description DELETE ALL ROWS Used for deleting all rows in table; use with caution; default is FALSE DELETE EXACT Delete using user key matching algorithm with rows in IF table; default is FALSE DELETE MATCHES SQL WHERE fragment deletion criteria; DELETE MATCHES = EIM_ACCOUNT, (NAME LIKE “TST_ACCT%”) DELETE ROWS Prevents deletion of rows; DELETE ROWS=S_ADDR_ORG, FALSE DELETESKIPPRIMARY Nullifies the foreign Key reference in the base table By Sukesh Tokshiya

26 EIM Configuration File
SAMPLE IFB file for DELETE Process. [Siebel Interface Manager] LOG TRANSACTIONS TO FILE = FALSE USE INDEX HINTS = FALSE USE ESSENTIAL INDEX HINTS = FALSE [Delete_Address] TYPE = DELETE TABLE = EIM_ADDR_PER BATCH = $BatchRange DELETE EXACT = TRUE ROLLBACK ON ERROR = TRUE DELETE SKIP PRIMARY = FALSE ONLY BASE TABLES = S_ADDR_PER COMMIT EACH TABLE = FALSE COMMIT EACH PASS = FALSE By Sukesh Tokshiya

27 Optimizing EIM Process
EIM process can be optimized to get Maximum performance. Populate 2000 records for one batch records. Set specific base table name in IFB file if you want process that base table only.If possible set specific columns also. Use batch range for each process. Start parallel EIM jobs ( you can start 5 instances of EIM on one SIEBEL server). ONLY BASE TABLES or IGNORE BASE TABLES parameters ONLY BASE COLUMNS or IGNORE BASE COLUMNS parameters Separating INSERT and UPDATE Operations USE INDEX HINTS parameter usage USING SYNONYMS parameter usage Transaction Logging Disable Triggers By Sukesh Tokshiya

28 RUN the EIM  Submit the EIM as a Siebel Server Batch component task
Running EIM Process Steps Involved in running EIM Populate the columns in the Interface/ EIM table that are required to load the Siebel Write/Edit the EIM Configuration (IFB) File to define the EIM Process to perform RUN the EIM  Submit the EIM as a Siebel Server Batch component task By Sukesh Tokshiya

29 Running EIM Process Start SIEBEL Client Navigate to Enterprise Operations View in the Server Administration screen Click the Component Requests view tab In the Component Requests form, add a new record. Complete the rest of the fields and commit In the Component/Jobs dialog box, select the Enterprise Integration Mgr component and click OK. In the Component/Job field, click the ellipsis button. The Component/Jobs dialog box appears. In the Component Request Parameters list, add or change any component parameters for the EIM process In the Component Requests form, click the menu button, and then click Submit request EIM started By Sukesh Tokshiya

30 Running EIM Process Using the Command-Line Interface
Start the srvrmgr program in the command-line interface. To start the srvrmgr program For Windows servers only: at the DOS prompt, change to the \bin subdirectory within the Siebel Server root directory: cd \siebel_server_root\bin Start the svrmgr program along with the parameters mentioned below: Parameter What it specifies Syntax for Windows Syntax for UNIX Required gateway_server Network address of the Siebel Gateway machine /g -g Yes entrpr_server Siebel Enterprise Server name /e -e siebel_server Siebel Server name (the default is all servers) /s -s No username Siebel Server administrator /u -u password Siebel Server administrator password /p -p By Sukesh Tokshiya

31 Running EIM Process Sample syntax for running the svrmgr would be:
srvrmgr /g gateway1 /e enterprise1 /s server1 /u sadmin /p sadmin Sample syntax for specifying the Run Task command: run task for component eim with config=import.ifb srvrmgr /g siebelserver /e AspireEnt753 /s SIEBELSERVER /u sadmin /p sadmin /c "run task for component eim with config=<<filename.ifb>>,Errorflags=1,Sqlflags=8,Traceflags=3" By Sukesh Tokshiya

32 Error Handling in EIM Common Errors and Resolution IF_ROW_STAT
Indicates Resolution IN_PROGRESS Integration Manager sets IF_ROW_STAT to this initial value for all rows in the batch. If rows still have this status value after Integration Manager exits, a failure occurred that aborted processing for this table. One possible reason may be that an extension column in the Base table that the EIM table maps to does not exist. Another reason may be that there is insufficient space in the Siebel Server for the generation of LOG files. SQL_ERROR A SQL error occurred during an attempt to import this row. This error occurs for rows processed when transaction logging is TRUE. In this case, the SQL statement that failed execution is logged in the EIM log file. This statement can be analyzed to deduce the specific error. By Sukesh Tokshiya

33 Error Handling in EIM Common Errors and Resolution continued …
IF_ROW_STAT Indicates Resolution IMPORT_REJECTED A user-specified filter query failed for this row. The query specified using the FILTER QUERY parameter needs to be analyzed and corrected. The query expression should be a self-contained WHERE clause expression (without the WHERE keyword) and should use only unqualified column names from the interface table or literal values (such as NAME IS NOT NULL). FOREIGN_KEY A required foreign key column in the target table could not be resolved. One reason could be that all the columns in the EIM table that map to the foreign key in the base table have not been populated. Another reason could be that the EIM table columns mapping to the foreign key column, resolve into a ROW_ID that is non-existent in the Foreign Key table. PICKLIST_VALUES A required pick list value in the target table could not be resolved. This error occurs for NULL or invalid bounded pick list values. The error could be resolved by ensuring that a pick list exists for the column that is LOV bounded. The value being imported for this column corresponds to one of the values in the pick list. By Sukesh Tokshiya

34 Error Handling in EIM By Sukesh Tokshiya IF_ROW_STAT Indicates
Resolution REQUIRED_COLS One or more required columns for the target table were NULL. Before running the EIM, it should be ensured that the required columns in the base table(s)are being populated. Even if these columns are not specified in the EIM table, they could be defaulted to specific values using the DEFAULT or FIXED COLUMN parameters in the IFB file. DUP_RECORD_EXISTS The row exactly matches rows that already exist in the destination tables. This error can also occur when the same record (same user key) exists with the same EIM batch number with a lower ROW_ID. In this case, MIN (ROW_ID) is the record processed, and the other records with the same user key are marked as DUP_RECORD_EXISTS. It should be ensured that in the EIM table, records with the same batch number have distinct unique key combinations. PARTIALLY_IMPORTED The row did not fail for the target table (although it may have been a duplicate), but did fail during processing of a secondary base table. This status is set after the import has completed. In case, a parent-child relationship exists between the target table and the secondary base table, the user keys mapping to the Foreign Key column in the Child table referencing the Parent table must be populated in the EIM table in exactly the same way in which the user key columns resolving to ROW_ID of the parent table are populated. By Sukesh Tokshiya

35 Error Handling in EIM By Sukesh Tokshiya IF_ROW_STAT Indicates
Resolution DUP_RECORD_IN_EIM_TBL Indicates that there are 2 or more interface records having the same user key values. To avoid this situation, analyze the input records before beginning the EIM task. If you find duplicate records, you can either combine them into one record, or specify a different batch number for the duplicate record. 4 NON_UNIQE_UKEYS This error occurs if there is more than one USERKEY, say <<Basetable name_U1>>, <<Basetable name_U2>>, etc. defined on a base table. The particular EIM table being used to populate the base table uses the second USERKEY but the user has populated EIM columns corresponding to the columns of the first USERKEY It is necessary to identify the particular USERKEY that the EIM table uses and populate columns mapping to that USERKEY uniquely.5 AMBIGUOUS This error is usually encountered when there are some columns in the Base table, other than the unique key columns, which also need to be uniquely populated for each record. This is because of unique index database constraint defined on these columns. This error is also encountered when attempting to run DELETE or MERGE processes on records in the base table with same unique keys but different conflict_ids. The workaround is to identify all the column combinations in the base table, which participate in the different unique index constraints defined on it, and populate each combination uniquely. 6 By Sukesh Tokshiya

36 Error tracking process
Start 1. Query the appropriate interface tables for rows whose IF_ROW_BATCH_NUM equals the batch number for the import. Imported/ Deleted / Exported/Merged Yes 3. EIM Process is successful 2. Check the value in IF_ROW_STAT column for all these rows No 4. Check the value in the IF_ROW_STAT column 5. Using the chart of possible IF_ROW_STAT values, analyze the possible cause of error 7. Search for the value in the EIM log file for the current run 6. Check the value of IF_ROW_STAT_NUM column in the EIM table 8. This value corresponds to a particular pass number in the EIM process, and is logged in the EIM log file in case of Error 9. Using the description in the EIM log file corresponding to the IF_ROW_STAT_NUM value, deduce the cause of the error End By Sukesh Tokshiya

37 Enterprise Integration Manager (EIM)
New Features in SIEBEL 7.5 S_PARTY Table. S_PARTY table has been introduced into SIEBEL Data Model in SIEBEL 7. The S_PARTY table is the target base table, while S_ORG_EXT. S_CONTACT, S_USER, and S_POSTN now become extension tables of the S_PARTY table. The S_EMPLOYEE table is obsolete in version SIEBEL 7. These schema changes have a direct effect on EIM behavior. MISC SQL Parameter. SIEBEL 7 introduces a new parameter, MISC SQL. This is used to set certain Primary Child Foreign Keys, such as S_CONTACT.PR_OU_ADDR_ID and S_POSTN.PR_EMP_ID. When using MISC SQL in SIEBEL 7 to set Primary Child Foreign Keys, EIM does NOT log any transactions for mobile users. This parameter should only be used for initial data loading. For more information, see “Header and Process Parameters”. utleimdiff.exe Utility. The Siebel data model changes from release to release. Schema changes have an effect on EIM behavior. Use the utleimdiff utility to find differences in all interface tables between two repositories. It also generates a selective report of the EIM tables. The results can be used to help you prepare interface tables for EIM data loading. By Sukesh Tokshiya

38 Enterprise Integration Manager (EIM)
New Features Continued….. Previously you could not delete from the S_NOTE* and S_*_SKILL_IT tables because they did not have a primary user key. Now you can delete records from S_NOTE* and S_*_SKILL_IT tables without deleting records from the parent tables using EIM_NOTE_DEL and EIM_SKLI_DEL, respectively. Delete and Merge performance is improved if you create some specific temporary indexes first. Oracle INSERT APPEND MODE. This new parameter helps avoid deadlocks when running parallel EIM processes. ATTACHMENT DIRECTORY. Specifies the directory to be used for importing attachments. CASCADE DELETE ONLY. This new parameter determines how child records are handled when the parent record is deleted. EIM SCHEMA CACHE. This caches the column relations. By Sukesh Tokshiya

39 Enterprise Integration Manager (EIM)
New Features Continued….. EIM Table Mapping Wizard. SIEBEL Tools includes an EIM Table Mapping wizard to assist in adding extensions to the Data Model: Add new customer columns to existing SIEBEL tables. Add new extension tables. Add new intersection tables. EIM_PROD_INT_UK. EIM_PROD_INT_UK in SIEBEL 7 can be used to update user key columns in S_PROD_INT, such as NAME and VENDR_OU_ID. INTEGRATION_ID is an alternative user key in S_PROD_INT. The EIM engine uses this new user key to update traditional user key columns. LOG TRANSACTIONS TO FILE. SIEBEL 7 introduces a new parameter, LOG TRANSACTIONS TO FILE. EIM now logs transactions into DX files stored in the File_System\EIM directory. A marker transaction is created in the S_DOCK_TXN_LOG table. For more information, see “Header Parameters” DELETE MATCHES and EXPORT MATCHES Behavior Changed. The behavior of these parameters has changed as part of the new S_PARTY model. These parameters can now affect extension tables. These parameters also have a new argument. By Sukesh Tokshiya

40 Thank you By Sukesh Tokshiya


Download ppt "SIEBEL EIM By Sukesh Tokshiya."

Similar presentations


Ads by Google