30
EIM Questionnaire v1.0 EIM eXpert Review Team EIM Questionnaire Contents – 1. BASIC / GENERAL........................................ 3 2. EIM TABLE.............................................. 7 3. SIGNIFICANCE OF PROCESS SECTIONS PARAMETERS IN IFB FILE 10 4. IMPORT................................................ 13 5. EXPORT................................................ 16 6. DELETE................................................ 18 7. MERGE................................................. 22 8. Performance Tuning....................................23 04th October 2004 Page 1 of 30

EIMQuestionnair

Embed Size (px)

Citation preview

Page 1: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

EIM Questionnaire

Contents –

1. BASIC / GENERAL........................................................................................3

2. EIM TABLE....................................................................................................7

3. SIGNIFICANCE OF PROCESS SECTIONS PARAMETERS IN IFB FILE..10

4. IMPORT.......................................................................................................13

5. EXPORT......................................................................................................16

6. DELETE.......................................................................................................18

7. MERGE........................................................................................................22

8. Performance Tuning..................................................................................23

04th October 2004 Page 1 of 24

Page 2: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

1. Basic / General

Question #1

What is EIM and what operations can one perform through EIM?

Answer

Siebel Enterprise Integration Manager (EIM) manages the exchange of data between Siebel database tables and other corporate databases. Due to the complexity of table relationships and Mobile Web Client requirements, loading data directly into Siebel base tables is not supported.

EIM is used to perform bulk imports, exports, merges, and deletes. (Import, Delete, Export, Merge)

Question #2

What are EIM tables/interface tables and what are their significance?

Answer

Siebel interface tables/EIM tables are intermediate database tables that act as a staging area between the Siebel application database and other databases. Before EIM can be used in most cases, one must populate the interface tables with data to be processed by EIM.

Question #3

Will EIM interfere or affect code built into the application?

Answer

EIM will not interfere with code built into application because code works at the business component level, and EIM works at the table level.

Question #4

Does EIM evaluate properties on Business Component (BC) level (such as default value or LOV type)?

04th October 2004 Page 2 of 24

Page 3: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

Answer

EIM does not evaluate the logic from the BC Layer (or above); it only evaluates the data layer, tables, columns and their properties. The LOV Type on the table level and BC level should thus be always consistent.

Question #5

How does EIM treat empty strings?

Answer

EIM translates empty strings into NULL.

Question #6

Does EIM support case values?

Answer

Yes, EIM supports various case values defined for base table columns in Siebel Tools. EIM will adjust the case value of an interface table column according to the Force Case property of the corresponding base table column.

Question #7

Can you Import Data into “Base Tables without User Keys”?

Answer

Import works but EIM will not check and prevent duplicate records from being imported into the base tables without user keys. If an import batch is executed repeatedly, the same records will be imported repeatedly because EIM cannot check whether the records to be imported already exist in the base table without user keys.

Question #8

Can you Update Data in “Base Tables without User Keys”?

Answer

04th October 2004 Page 3 of 24

Page 4: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

Update on base tables without user keys does not work, as EIM cannot identify the record to update.

Question #9

Can you Export Data from “Base Tables without User Keys”?

Answer

Yes. Export works using the EXPORT MATCHES and EXPORT ALL ROWS parameters.

If the EXPORT ALL ROWS parameter is set to TRUE, all rows will be exported from the target and secondary base tables.

Question #10

Can you Delete Data from “Base Tables without User Keys”?

Answer

If the DELETE ALL ROWS parameter is set to TRUE, delete works and all rows will be deleted from the target and secondary base tables (and children tables).

If the DELETE MATCHES parameter is used, delete works.

DELETE EXACT will not work.

Question #11

Can you Merge Data in “Base Tables without User Keys”?

Answer

No. Merge does not work on base tables without user keys.

Question #12

What is EIM Configuration File (IFB file)?

Answer

04th October 2004 Page 4 of 24

Page 5: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

EIM reads a special configuration file that specifies the EIM process to perform (import, merge, delete, or export) and the appropriate parameters. The EIM configuration file is an ASCII text file of extension type .ifb that resides in the admin subdirectory under the Siebel Server directory.

Before running an EIM process, one must edit the contents of the EIM configuration file to define the processes that EIM will perform.

Question #13

Which are the three sources from where EIM accepts parameter values?

Answer

The three sources from where EIM accepts parameter values are-- The DOS command line that invokes the EIM process- The Siebel Server Manager GUI- The configuration file (*.ifb)

Parameter value searches are performed according to a specific hierarchy: Command-line parameters override component parameters, and component parameters override configuration file parameters.

Question #14

How will you run EIM using Siebel GUI? Answer

To run an EIM process using the GUI, goto -- Enterprise Operations screen=> Component Requests view tab.- In the Component Requests form, create new record with Component/Job field =

Enterprise Integration Mgr- In the Component Request Parameters list, add or change any component

parameters for the EIM process and click Save.

Question #15

How will you run EIM using command-line interface? Answer

Use the following command to run an EIM process using the command-line interface -

04th October 2004 Page 5 of 24

Page 6: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

run task for component eim with config=import.ifb

04th October 2004 Page 6 of 24

Page 7: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

2. EIM Table

Question #1

Which columns in EIM table must be populated before performing EIM process?

Answer

For all EIM processes, one must populate the ROW_ID, IF_ROW_STAT, and IF_ROW_BATCH_NUM columns in the interface tables.

For merge processes, one must also populate the IF_ROW_MERGE_ID column.

Question #2

What is the significance of columns ROW_ID and IF_ROW_BATCH_NUM?

Answer

For an interface table row to be eligible for processing, one must initialize its ROW_ID. The ROW_ID, in combination with the value of IF_ROW_BATCH_NUM, must yield a unique value.

The ROW_ID values in the interface tables are not the ROW_ID values that will be assigned to the row once it is loaded into the base table. The ROW_ID generated by EIM has the ##-##-#### format. The regular row ID that will be assigned to the row has the #-## format.

Question #3

What is the significance of column IF_ROW_STAT?

Answer

EIM updates this column after processing the row to indicate the status of the record. The IF_ROW_STAT column is not used by EIM when determining which rows to process. When populating the interface tables, one can set this column to any value except NULL.

Question #4

What is the significance of column IF_ROW_STAT_NUM?

04th October 2004 Page 7 of 24

Page 8: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

Answer

After processing, this column will contain a zero (0) if a row was successfully processed to completion.

If processing failed, this column will contain the pass number where the pass failed.

Question #5

Which three interface table columns must be populated in order to import file attachments?

Answer

FILE_NAME - This column requires the root filename of the file attachment.FILE_EXT - This column requires the extension type of the file attachment (DOC, XLS, or TXT).FILE_SRC_TYPE - This column requires the value "FILE" or the rows will not be imported.

Question #6

Where and how would one view interface table mappings to base tables?

Answer

Use Siebel Tools to view interface table mappings to base tables.

a. Start Siebel Tools.b. In Object Explorer, click the Types tab.c. Click EIM Interface Table => EIM Table Mapping

The EIM Table Mappings window now displays all base table mappings for the selected interface table.

Bookshelf (Interface Tables Reference) can also be used to view interface table mapping to base tables.

Question #7

Where and how would one view interface column mappings to base tables?

04th October 2004 Page 8 of 24

Page 9: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

Answer

Use Siebel Tools to view column mappings to base tables.

a. Start Siebel Tools.b. In Object Explorer, click the Types tab.c. Click EIM Interface Table => EIM Table Mappingd. Expand EIM Table Mapping.e. Click Attribute Mapping.

The Attribute Mappings window now displays all column mappings for the selected base table.

Question #8

Where and how would one “map” extension column of interface table with base table?

Answer

- To map interface table extensions to base table extensions, one must specify which column the extended field will point to in the base table.

-- For column extensions, one can use the “Attribute Mapping” screen in Tools to

specify mappings to the new fields.

- Database Extensibility and EIM support mappings between columns in extension tables and interface tables only if these columns share the same base table.

“EIM Mapping Wizard” can also be used to achieve the above tasks.

04th October 2004 Page 9 of 24

Page 10: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

3. Significance of Process Sections Parameters in IFB File

Question #1

What is the significance of “Type” parameter in IFB file?

Answer

It specifies the type of EIM process being defined - IMPORT, EXPORT, DELETE, MERGE, or SHELL.

Question #2

What is the significance of “Shell” command in Type parameter of IFB file?

Answer

A shell process uses the INCLUDE statement to invoke a sequence of processes in a single run.

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.

Question #3

What is the significance of parameter “Log Transaction”?

Answer

If this parameter is TRUE, EIM will log changes when mobile clients synchronize. If this parameter is set to FALSE, changes will not be logged.

Question #4

What is the significance of parameter “SESSION SQL”?

Answer

It specifies a user-defined SQL statement to be sent to the database server before the process. One can use the SESSION SQL parameter to set tracing for performance

04th October 2004 Page 10 of 24

Page 11: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

analysis. Only one SESSION SQL parameter can be used in each process section. Caution: This parameter cannot be used to insert or update data into base table.

Question # 5

What is the significance of parameter “TRANSACTION SQL”?

Answer

It specifies a user-defined SQL statement to be sent to the database before other SQL statements and immediately after each commit or rollback operation during the process (including subprocesses). Although a commit operation is processed first, this statement is emitted (for the first time) immediately after the SESSION SQL parameter. Only one TRANSACTION SQL parameter can be used in each process section.

Question #6

How to define “rollback segment” in the configuration file?

Answer

Add the following line to the EIM configuration file:TRANSACTION SQL = "set transaction use rollback segment rb_big"

Question #7

How to define “rollback segment” using the Server Manager?

Answer

Set the Database Rollback Segment Name parameter of the Enterprise Integration Mgr => Component Parameters List

Question #8

What is the significance of parameter “USE INDEX HINTS”?

Answer

It controls whether EIM issues optimizer hints to the underlying database to improve performance and throughput. This parameter is for Oracle and SQL Server only. The default setting is FALSE.

04th October 2004 Page 11 of 24

Page 12: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

04th October 2004 Page 12 of 24

Page 13: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

4. Import

Question #1

What are the recommended sequence/order of entities for Import?

Answer

Import data should be in the following order to make sure that relationship between dependent data elements are established correctly –

1. Reference Data - List of Values2. Business Unit3. Positions4. Accounts5. Contacts6. Employees7. Products8. Opportunities ……..and so on||NotesFile Attachments

Question #2

How to maintain primary child relationships using EIM?

Answer

EIM will populate all primary child columns with Primary Child Col property set to TRUE.

Users can also run miscellaneous SQL statements defined in the eim39.sql file

Question #3

Can EIM be used to update user key columns?

Answer

04th October 2004 Page 13 of 24

Page 14: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

EIM is used to update non-user key columns only. EIM does not support modification of existing user key columns.

COM Script can be used instead.

Question #4

How to suppress insertions of rows in base tables while importing?

Answer

Set the INSERT ROWS parameter in the EIM configuration file to FALSE.

Question #5

How to suppress updates to existing rows in base tables while importing?

Answer

Set the UPDATE ROWS parameter in the EIM configuration file to FALSE.

Question #6

Can you import Private Contacts using EIM?

Answer

Siebel applications does not support importing private contacts using EIM. The default.ifb file contains a section that sets the CON_PRIV_FLG column to a constant ‘N’ to make sure that only public contacts are imported. Since EIM does not support importing private contacts, one must not change the value of the PRIV_FLG column.

Question #7

How do you import File Attachments using EIM?

Answer

EIM can import file attachments in all formats, including common file types such as Word documents (.doc), Excel spreadsheets (.xls), and text files (.txt).1 Using Windows Explorer, navigate to the Siebel Server directory. The default is c:\siebel.

04th October 2004 Page 14 of 24

Page 15: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

2 Verify that the siebel directory contains a directory named input.3 Copy all file attachments to the input directory. 4 Populate interface tables with rows matching the file attachments.5 Run EIM.

Each file attachment row must contain the filename reference to the files one want to import and the appropriate values in the following columns –FILE_NAME - Set this column to the root filename of the file attachment.FILE_EXT - Set this column to the extension type of the file attachment (DOC, XLS, or TXT).FILE_SRC_TYPE - This column must be set to “FILE”.

Question #8

How do you update File Attachments using EIM?

Answer

In order to update file attachments, EIM deletes the old row pointing to the existing file attachment and then imports the new file attachment.

After all file attachments have been updated, use the Siebel File System Maintenance Utility named “sfscleanup.exe” during hours when the system is least laden to clean the file attachment directory of any unused file attachments.

Question #9

How does EIM handle the BU_ID Column while importing into Base Tables?

Answer

Base tables in the Siebel Data Model that are enabled for multi-org contain the BU_ID foreign key column. This column points to a business organization defined in the S_BU base table. Examples of such base tables include S_PROD_INT, S_PRI_LST, and S_DOC_AGREE.

During the import process, if the value supplied in the interface table does not resolve to a valid business organization, EIM by default will continue to import the record with the BU_ID set to the default value defined in the base table. For EIM to report import failures for such instances, set the parameter SKIP BU_ID DEFAULT parameter to TRUE in the .ifb configuration file (the default value for this parameter is FALSE).

P.N. – It is observed that the above behavior is not consistent. The above answer reflects the theory while in practice sometimes EIM fails if BU columns are not populated.

04th October 2004 Page 15 of 24

Page 16: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

5. Export

Question #1

What is the significance of parameter “CLEAR INTERFACE TABLE”?

Answer

It specifies whether existing rows in the interface table for the given batch number should be deleted. Valid values are TRUE (the default) and FALSE.

Question #2

How would you export selected data rows from the base table?ORWhat is the significance of parameter “EXPORT MATCHES”?

Answer

To export selected rows from base tables, set the EXPORT ALL ROWS parameter as follows –

EXPORT ALL ROWS = FALSESpecify one or more EXPORT MATCHES expressions to define the rows to be exported in this batch.

EXPORT MATCHES = (LAST_UPD > ‘1995-01-01’)

This parameter specifies a WHERE clause expression for filtering base table rows. The value is in two parts: the Siebel interface table name and the filter expression that goes against the target base table. The expression is applied against the target base table for the interface table.

Question #3

How would you export all data rows from the tables that are mapped in an interface table?OrWhat is the significance of parameter “EXPORT ALL ROWS”?

Answer

04th October 2004 Page 16 of 24

Page 17: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

To export all rows from the tables that are mapped in an interface table, set the EXPORT ALL ROWS parameter to TRUE in the specific export batch section of the EIM configuration file.

e.g. -EXPORT ALL ROWS = TRUEIt specifies that all rows in the target base table and secondary tables are to be exported. Valid values are TRUE and FALSE (the default).

Question #4

How would one export data corresponding to organization/division (S_BU)??

Answer

For exporting data that pertains to organizations and divisions, it may be necessary to run additional SQL statements against the interface table to complete the export of names from the S_BU base table (used for organizations).

To populate the BU columns from the S_BU base table

1 In the Admin directory within the Siebel Server root directory, open the file named eim_export_lookup_bu_name.sql.2 Locate the appropriate SQL statement for the base table to be exported.3 Modify this SQL statement if necessary and run it against the interface table to populate the BU columns from the S_BU base table. The value of IF_ROW_STAT should be EXPORTED.

04th October 2004 Page 17 of 24

Page 18: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

6. Delete

Question #1

What is the significance of parameter “CLEAR INTERFACE TABLE”?

Answer

If CLEAR INTERFACE TABLE in the configuration file is TRUE, all rows with the specified batch number are deleted.

CLEAR INTERFACE TABLE must be FALSE for a delete process that uses interface table values to identify rows for deletion.

Question #2

What is the significance of parameter “DELETE EXACT”?

Answer

If the DELETE EXACT parameter in the configuration file is set to TRUE, EIM will delete the rows from the table that match the user key defined in the interface table.

By default, DELETE EXACT = FALSE. If DELETE EXACT is set to TRUE, one must use the ONLY BASE TABLES parameter in conjunction, to identify the base tables.

It will delete rows from non-target base tables that contain user keys. Rows in non-target base tables that do not contain user keys will not be deleted.

Question #3

What is the significance of parameter “DELETE MATCHES”?

Answer

If the DELETE MATCHES parameter in the configuration file, EIM will delete the rows from the target base table that match the predicate specified in the parameter.

It is like a WHERE clause expression for filtering base table rows. The value is in two parts: the Siebel interface table name and the filter expression that goes against the target base table.

04th October 2004 Page 18 of 24

Page 19: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

DELETE MATCHES = EIM_ACCOUNT, (LAST_UPD > ‘2000-06-22’ AND LAST_UPD < ‘2000-06-23’)

This parameter is used to delete rows from target base tables. Rows will be deleted from the target base table even if the DELETE ROWS parameter is set to FALSE for that table. This parameter will only write the user keys values of the deleted target table rows to the interface table columns.

Question #4

What is the significance of parameter “DELETE ALL ROWS”?

Answer

If the DELETE ALL ROWS parameter in the configuration file is set to TRUE, EIM will delete all rows from the target base table. Valid values are TRUE and FALSE (the default).

This parameter will only write the user keys values of the deleted target table rows to the interface table columns.

Question #5

What is the significance of parameter “DELETE ROWS”?

Answer

It specifies whether rows from the target base table can be deleted. Valid values are TRUE (the default) and FALSE. This parameter can prevent deletions from one table while allowing them in others.

DELETE ROWS = S_ADDR_ORG, FALSE

Question #6

How cascade behavior is handled during EIM deletion?

Answer

EIM deletion of a parent row causes cascade deletion of child rows only if the foreign key column in the child table is a mandatory column. Otherwise a cascade clear is performed.

04th October 2004 Page 19 of 24

Page 20: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

Question #7

How will you delete rows from the entities – Notes, Territory Items & Fulfillment Items using Delete Matches parameter?

Answer

Rows in the above base tables do not have primary user keys and thus cannot be deleted using this parameter.

Question #8

How will you delete file attachments using EIM?

Answer

Step 1Run an EIM delete process for all file attachments record that needs to be deleted.

Step2Once all file attachments have been deleted, run the Siebel File System Maintenance Utility named “sfscleanup.exe” to clean up the file attachment directory.

Question #9

How will you handle aborts of EIM Delete processing?OrHow will you ensure data integrity during Delete operation?OrWhat is the significance of parameter - COMMIT EACH TABLE, COMMIT EACH PASS, ROLLACK ON ERROR?

Answer

If an EIM delete process is aborted, base tables associated with deleted rows may not be updated. Orphans rows may be created since foreign keys may not have been updated. This may cause critical data integrity issues.

To avoid this problem, one should set the following parameters in the .ifb configuration file to make sure that the EIM delete process will only perform one commit and rollback when aborted:

04th October 2004 Page 20 of 24

Page 21: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

COMMIT EACH TABLE = FALSECOMMIT EACH PASS = FALSEROLLACK ON ERROR = TRUE

04th October 2004 Page 21 of 24

Page 22: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

7. Merge

Question #1

How will you set up the interface table for EIM to perform Merge operation?OrWhat is the significance of interface table column – IF_ROW_MERGE_ID?

Answer

One should set IF_ROW_MERGE_ID accordingly, as explained below,

- For an interface table row whose ROW_ID and IF_ROW_BATCH_NUM columns identify the surviving or merged-into row, set this value to NULL.

- For interface table rows whose ROW_ID and IF_ROW_BATCH_NUM columns identify a row to be merged (and subsequently deleted), set this value to the ROW_ID where this row will be merged.

Upon completion of the merge process, the first row survives and the remaining rows are deleted.

Question #2

Can you merge File Attachments using EIM?

Answer

EIM does not support merging of file attachments.

04th October 2004 Page 22 of 24

Page 23: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

8. Performance Tuning

Question #1

How will you improve performance/tune an EIM process?OrWhich factors will you take into account for improving performance of EIM?

Answer

The following are few important points that one should keep in mind while improving EIM performance:-

1. Run EIM processes in parallel.

2. Limit base tables and columns to be processed.

3. Ignore account synonyms

4. Eliminate PRIMARY KEYS ONLY parameters

5. Use smaller batches

6. Disable transaction logging during the EIM process.

7. Perform regular table maintenance on interface tables

8. Remove Error Flags

Question #2

Which parameters in IFB file will you use to improve performance of an EIM process by limiting the affected tables and columns?

Answer

Four EIM parameters can help to improve performance by limiting the affected tables and columns:

ONLY BASE TABLES, IGNORE BASE TABLES, ONLY BASE COLUMNS, and IGNORE BASE COLUMNS.

04th October 2004 Page 23 of 24

Page 24: EIMQuestionnair

EIM Questionnaire v1.0 EIM eXpert Review Team

The ONLY BASE COLUMNS parameter is critical for the performance of an Integration Manager process updating a few columns in many rows.

Question #3

What is the significance of BATCH parameter in improving performance of an EIM process?

Answer

a) Use smaller batches.

Using multiple smaller batches (around 20,000 rows) rather than one large batch will place smaller demands on system resources and improve performance. Although the limit of rows for a process in a batch depends on physical machine setup, one should not use a batch size of more than 100,000 rows.

b) Use batch ranges

Using batch ranges (BATCH = #-#) allows one to use smaller batch sizes. The maximum number of batches that one can run in an EIM process is 1,000.

Question #4

What is the significance of Error Flags parameter in improving performance of an EIM process?

Answer

Activating flags will have a direct impact on performance. Typically, activating flags should only be done when testing EIM processes. One should avoid activating flags in a production environment unless absolutely necessary.

- Setting the Error Flags parameter to 1 produces a detailed explanation of rows that were not successfully processed.

- Setting the SQL Trace Flags parameter to 8 creates a log of all SQL statements that make up the EIM task. The lower values for SQL Debug Flags (1, 2, and 4) are used for logging at the ODBC level.

- Setting the Trace Flags parameter to 1 creates a step-oriented log of the task. This can be used to determine the amount of time EIM spends on each step of the EIM task, or for each interface table processed.

04th October 2004 Page 24 of 24