You are here

Siebel EIM

Real time Siebel EIM (Enterprise Integration Manager) Interview Questions – Part 4

Siebel EIM Interview Questions and Answers - Part 4.

We have collected the Siebel real time interview questions related to EIM ( enterprise integration manager) , these are asked in real interviews in most of the companies. All the best for your job interview!

1.After importing data using EIM, why isn’t the data visible in some views or applets?

Ans:
Some values that needed to be imported for a particular view or applet to display imported data may not have been imported. In order to determine what values need to be imported for a particular view or applet, do a client-side spooling and check the SQL conditions when selecting the record. For example, the Sales Order Line Items applet's product picklist will only display products with S_PROD_INT.SALES_SRVC_FLG value set to N.

2.Why does an EIM process fail with following error message: Error 405: Too many batch numbers in range?

Ans:
Too many batches are set for the EIM process. The maximum number of batches you can run in an EIM process is 1,000.

3.Why does an EIM import process fail with the following error message: Error 413: Column S_XXX.XXX table not in process?

Ans:
This error message may be generated when you have specified one or more interface tables using the TABLE parameter in the .ifb configuration file, but failed to specify user key columns and required columns from all related base tables when using the ONLY BASE COLUMNS parameter.

4. Why does an EIM process fail with the following error message: Error 999: Rownum range [XXX] too large?

Ans:
The batch that you are trying to process contains too many rows. Typically, you should not exceed 100,000 rows in a single batch.

5. Why does an EIM export process fail with the following error message:Error 999: Doubly indirect joins for XXX too complex to export ?

Ans:
EIM does not support doubly indirect joins. This error will be generated if you try to run an EIM export process to the following interface tables:
■ EIM_ACCSRCPIDTL
■ EIM_CRSE_TSTRUN
■ EIM_IC_CALC
■ EIM_IC_PCMP_DTL
■ EIM_IC_PERF_HST
■ EIM_MDF

6.Why does EIM hang when updating the S_LST_OF_VAL base table?

Ans:
If you are running Siebel applications on an IBM DB2 database, this problem is due to a data issue. The BU_ID column in the S_LST_OF_VAL base table may have only one or very few distinct values. That makes the DB2 optimizer perform a table scan through all rows in the S_LST_OF_VAL table when most or all rows have the same BU_ID column value.

To avoid this problem and speed up the query, you should modify the statistics data by running the following SQL statements:
update sysibm.sysindexes set firstkeycard=1000 where name='S_LST_OF_VAL_M2';
update sysibm.syscolumns set colcard = 1000 where tbname='S_LST_OF_VAL' and name='BU_ID';

NOTE: Depending on the data with which you are working, you may need to run
other SQL statements beforehand.

7. Why does EIM produce wrong data when updating tables in Oracle?

Ans:

When there are 255 or more NVL functions in an update statement, Oracle will update the wrong data due to hash keys overflow. This is an Oracle-specific issue. To avoid this problem, use less than 255 NVL functions in the update statement.

What is the recommended number of rows that can be loaded in a single batch?

For an initial load, you can use 30,000 rows for a large batch. For ongoing loads, you can use 20,000 rows for a large batch. You should not exceed 100,000 rows in a large batch.
Furthermore, you should limit the number of records in the interface tables to those that are being processed. For example, if you have determined that the optimal batch size for your system is 19,000 rows per patch and you are going to be running

8 parallel EIM processes, then you should have 152,000 rows in the interface table. Under no circumstances should you have more than 250,000 rows in any single interface table, since this will have a tremendous negative performance impact.

NOTE: The number of rows you can load in a single batch may vary depending on your physical machine setup. To reduce demands on system resources and improve performance, you should always try to use smaller batch sizes.

How can I tune my EIM batches to improve performance?

You should try the following options to improve EIM performance:

Verify that all indices exist for the tables involved.

Limit tables and columns to be processed using ONLY BASE TABLES/COLUMNS configuration parameters to minimize EIM processing.

Consider switching off transaction logging during the EIM run. This will definitely improve performance. However, it must be balanced with the need for mobile users to reextract afterward.

Try using different batch sizes. Large batch sizes are often not efficient.

NOTE: Although the limit of rows you can process in a batch depends on your physical machine setup, you should not use a batch size of more than 100,000 rows.

For import processes, and delete processes that use the DELETE EXACT parameter, it is recommended that you use around 20,000 rows in a single batch.

Try using batch ranges (BATCH = x–y). This allows you to run with smaller batch sizes and avoid the startup overhead on each batch. The maximum number of batches that you can run in an EIM process is 1,000.

Perform regular table maintenance on interface tables. Frequent insert or delete operations on interface tables can cause fragmentation in the tables. Consult your database administrator to detect and correct fragmentation in the interface tables.

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

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

Set the USING SYNONYMS parameter to FALSE in the .ifb configuration file to indicate that account synonyms do not need to be checked.

Avoid using the UPDATE PRIMARY KEYS parameter in the .ifb configuration file.

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

above listed tips are some of the very useful eim performance improvement techniques.

How do I use the DELETE EXACT parameter to delete data from base tables other than the target base table?

To use the DELETE EXACT parameter to delete data from base tables other than the target base table, specify the user key columns only for a single base table for each row in the interface table. When specifying rows for exact deletion, make sure any columns not necessary to specify the row to be deleted are NULL to avoid problems with deleting from the wrong base table. EIM tries to enforce this behavior by requiring other user key columns to be NULL. If a row cannot be identified as clearly referring to a row in a single base table, that row will fail to be deleted.

The following procedure explains how to delete data from base tables other than the target base table using the DELETE EXACT parameter with the following scenario as an example.

In this example, EIM_ACCOUNT is mapped to base tables including S_ORG_EXT, S_ORG_PROD, and S_ORG_INDUST. If you want to delete data only from S_ORG_PROD, and not delete data from S_ORG_EXT or any other base tables, complete the following procedure.

To delete data from base tables other than the target base table
1 Populate the following columns in the IF table (such as user keys for the S_ORG_PROD table and all the special IF columns):
■ ACCNT_NAME
■ ACCNT_LOC
■ INS_PROD_NAME
■ INS_PROD_VENDR
■ INS_PROD_VENDR_LOC
■ INS_DT, ROW_ID
■ IF_ROW_BATCH_NUM
■ IF_ROW_STAT
■ ROW_ID

2 Add or modify the following process section in your .ifb configuration file:
TYPE = DELETE
BATCH NUMBER = < number used to populate IF_ROW_BATCH_NUM column>
TABLE = EIM_ACCOUNT
ONLY BASE TABLES = S_ORG_PROD
DELETE EXACT=TRUE

3 Run EIM.
This will delete all rows from the S_ORG_PROD table that have user keys that match the rows in your IF table.

Siebel Enterprise Integration Manager - EIM Most frequently asked Interview Questions – Part 3

This is Siebel EIM Interview Q&A Part 3 We have collected the Siebel real time interview questions related to EIM ( enterprise integration manager) , these are asked in real interviews in most of the companies. All the best for your job interview!

1.What is the behavior of the EIM merge process?

Ans: Data from the record you select as the surviving record are preserved. Data from the other records are lost. If there are other records associated with the records you merge, those records—with the exception of duplicates—are associated with the surviving record.

2.Why is the IF_ROW_STAT column set to the value NO_SUCH_RECORD after running a merge process?

Ans: If you do not correctly populate all the user key columns, the merge process will fail and the IF_ROW_STAT column in the interface table will be set to the value NO_SUCH_RECORD. This indicates that EIM cannot find the appropriate rows to merge using the specified user keys.

3.Can EIM be used to merge rows from secondary tables?

Ans: EIM can only be used to merge rows from target base tables, and not secondary tables. For example, the target base table for EIM_ASSET is S_ASSET. EIM can only be used to merge two or more S_ASSET rows into single S_ASSET rows. You cannot use EIM to merge two or more S_ASSET_CON rows into single S_ASSET_CON rows. During EIM merge, EIM will merge rows from the target base table, and update the rows from the secondary tables to reference the surviving target base table rows. If you try to merge two secondary tables rows into one row by populating the interface table with user keys of the secondary table rows, the interface table victim and survivor rows will have the same target base table user keys values, which will cause the target base table row to be deleted.

4.What is the recommended number of rows that can be loaded in a single batch?

Ans: For an initial load, you can use 30,000 rows for a large batch. For ongoing loads, you can use 20,000 rows for a large batch. You should not exceed 100,000 rows in a large batch. Furthermore, you should limit the number of records in the interface tables to those that are being processed. For example, if you have determined that the optimal batch size for your system is 19,000 rows per patch and you are going to be running 8 parallel EIM processes, then you should have 152,000 rows in the interface table. Under no circumstances should you have more than 250,000 rows in any single interface table, since this will have a tremendous negative performance impact. NOTE: The number of rows you can load in a single batch may vary depending on your physical machine setup. To reduce demands on system resources and improve performance, you should always try to use smaller batch sizes.

5. Should EIM stop processing when multiple rows fail a pass?

Ans: EIM is designed to import 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. EIM does not stop when failures occur.

Real time Siebel EIM (Enterprise Integration Manager) Interview Questions – Part 2

EIM Interview Questions -Part 2

We have collected the Siebel real time interview questions related to EIM ( enterprise integration manager) , these are asked in real interviews in most of the companies. All the best for your job interview!

1.How do I import international phone numbers using EIM?

Ans:

To import international phone numbers, the phone number must be prefixed with a plus (+) sign and the country code. For example, an international phone number with a country code of 44 should have the following format: +44123456789. Any phone number without a preceding plus sign in the database will be treated as an U.S.A phone Number. This will lead to the display of +1 in front of the phone number, and the use of the corresponding PHONE_FORMAT if the regional settings of the client are different.

2.How do I import URL links into the S_LIT base table?

Ans:

To import records as URL links into the S_LIT base table, the FILE_NAME column must not be null and the FILE_EXT column must be null for URLs.

3.When data is exported using an interface table (such as contacts), why doesn’t data from related child tables (such as opportunities) get exported?

Ans:

For all columns to export using an interface table (both data from the base table and data from related child tables), you need to add or modify the following line in the .ifb configuration file:
Export all Columns = TRUE
NOTE: Rows from child tables of related child tables will not be exported.

4.What is the behavior of the EIM delete process?

Ans:

The delete process performed by EIM is cascade delete. The data deleted is not restricted to the base tables mapped to the interface table that you specified in the delete process, but all child records as well. You should be very careful and specific when specifying delete criteria.
For example, using the criteria "DELETE MATCHES = EIM_PARTY, (CREATED > xxxxx)" will cause all records of S_PARTY that matches this criteria to be deleted from the database.

5.Is it possible to delete or merge rows that have the same primary user key and different conflict IDs using EIM?

Ans:

This is not possible. EIM relies on user keys to identify rows in base tables. If there are two rows in the base table that have the same user key but different conflict IDs, EIM cannot distinguish these rows. In such case, the IF_ROW_STAT field of the row in the interface table will be marked as AMBIGUOUS.

NOTE: When you are deleting records based on user keys, the parameter DELETE EXACT should be specified in the .ifb configuration file.

6. Can I remove unnecessary seed data by deleting all rows from the S_LST_OF_VAL base table?

Ans:

No, you should not remove unnecessary seed data by deleting all rows from the S_LST_OF_VAL base table. If you do so, you will not be able to reimport “clean” data and you will be forced to rebuild the seed data or restore from backup.

Use Search box to find more Siebel EIM Interview questions and Answers.

Real time Siebel EIM (Enterprise Integration Manager) Interview Questions – Part 1
We have collected the Siebel real time interview questions related to EIM ( enterprise integration manager) , these are asked in real interviews in most of the companies. All the best for your job interview! 1. After successfully importing quote information, my users are unable to edit their quotes. Why? Ans: You probably initialized the APPROVED_FLG field to Y for each quote. A Y makes the quote read-only and not editable by the user. Instead, set this field to N or leave it blank. 2. How can we import contacts so that they are visible in the Contact list? Ans: You need to import contacts using the EIM_CONTACT2 interface table, since it maps to the S_POSTN_CON intersection table. Populate the EIM_CONTACT2 interface table with the user key values for each contact and the S_POSTN_CON intersection table. When specifying values for EIM_CONTACT2.RESP_POSTN_DEPT and EIM_CONTACT2.RESP.POSTN_NAME columns, make sure that the divisions and positions are valid, and that there is at least one employee associated with each position. 3.How can data be imported into List of Values (LOV) tables? Ans: When importing data from interface tables, you may encounter the following error message in your 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. This error message indicates that either a picklist has not been created for this column (TYPE) or the value in your interface table for this column (TYPE) does not correspond to one of the values in the picklist for this column. To resolve this issue, you need to make sure that: ■ A picklist already exists for this column ■ The value you are importing for this column corresponds to one of the values in the picklist The following procedure explains how to import data into a LOV table using the S_ORG_EXT_XM table as an example. To import data into a LOV table 1 Using Siebel Tools, find the LOV type for the S_ORG_EXT_XM table. a. In Siebel Tools, select Types. b. Click Table. c. Select S_ORG_EXT_XM. d. With the S_ORG_EXT_XM table highlighted, expand Column tree control, and find the Type column. e. With the Type column highlighted, find the following two attributes in the Properties window: ❏ Lov Bounded: TRUE ❏ Lov Type: ORG_EXT_XM_TYPE The TYPE column should contain the value as the VAL column in the S_LST_OF_VAL table. NOTE: Although the TYPE column in the S_LST_OF_VAL and S_ORG_EXT_XM tables have the same name, they are not the same column and do not need to be populated with the same values. 2 Using the Siebel client, find S_ORG_EXT_XM_TYPE. a. Navigate to the List of Values screen. b. Query the Display Value column for ORG_EXT_XM_TYPE to make sure that the picklist already exists. 3. Using the Siebel client or EIM, add values for this bounded picklist. NOTE: If you are using the Siebel client to import data, the Siebel client will check the PickList property for each field in a certain business component. If you are 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 that you could insert data into a particular column using the Siebel client, but not using EIM, since they are looking at different properties. If you are using the Siebel client: a. In the List of Values view, create a new record. b. In the Type column, type ORG_EXT_XM_TYPE. c. In the Display value column, insert any value you want to use for this type. d. Repeat Step c until you have created records for all values you want to have in this picklist. If you are using EIM: e. Populate the EIM_LST_OF_VAL table, set the TYPE column to ORG_EXT_XM_TYPE, and set the VAL column to any value you want to use for this type. Make sure to populate all the required fields in the EIM_LST_OF_VAL table. f. Repeat Step e until you have inserted all records into the IF table for all values you want to have in this picklist. g. Import data from EIM_LST_OF_VAL to S_LST_OF_VAL using EIM. For information on importing data, see Chapter 4, “Importing Data.” The VAL column in the S_LST_OF_VAL table should contain the same value as the TYPE column in the S_ORG_EXT_XM table. NOTE: Although the TYPE column in the S_LST_OF_VAL and S_ORG_EXT_XM tables have the same name, they are not the same column and do not need to be populated with the same values. 4. When importing many accounts and positions using EIM, how do I make sure that the correct position is selected as the primary position for each account? Ans: To make sure that accounts imported using EIM are associated with the correct primary position, import each account with its primary position first as a separate batch. ■ In the first batch, import the account using EIM_ACCOUNT and populate ACCNT_TEAM_POSTN (position) and ACCNT_TEAM_DEPT (division) in addition to ACCNT_NAME and ACCNT_LOC. This batch will make sure that a position has been inserted as the primary position for that account (S_ORG_EXT.PR_POSTN_ID is populated correctly). ■ In the second batch, import the rest of the positions to be associated with the account to make up the sales team. This batch will insert additional rows in S_ACCNT_POSTN but will not update the primary position column S_ORG_EXT.PR_POSTN_ID. For the position in the first batch to be inserted as the primary position, there should not be any positions associated with the account. EIM will not update PR.POSTN_ID once the row has been populated with a ROW_ID. NOTE: You can use this method to set the primary position for other entities. 6. How can I import multiline fields such as addresses? Ans: When importing multiline fields such as addresses, you should use CHR(13) and CHR(10) for the field to be displayed as a multiline field. Otherwise, the following warning may be displayed in the GUI: You have tried to modify a group of fields that may have more than one value. To edit or add field values in this group, please open the first field in the group by clicking on the multivalue field control. 7.How do I import exported rows into target and secondary tables? Ans: If user keys from the secondary tables are made up of foreign keys referencing the target table and additional user keys of nonrequired columns, note that: ■ If you export rows from both target and secondary base tables, one interface table row will be created for every target table row, and a separate interface table row will be created for every related secondary table row. ■ If you reimport the exported batch rows into both the target and secondary base tables, the exported target table rows will be imported into the secondary table as well, since the exported target table rows have NULL values in the secondary table interface columns, and the secondary table's additional user keys allow NULL values to be imported. Additional rows will thus be mistakenly imported into the secondary base table. To avoid this problem, after exporting the target and secondary base tables rows, you should split the secondary table rows out from the exported batch into another batch, and then import the target and secondary table rows separately.
How do I populate the PR_PROD_LN_ID column in the S_PROD_INT base table

Complete the following procedure:

 To populate the PR_PROD_LN_ID column in the S_PROD_INT base table

Populate the S_PROD_INT base table using the EIM_PROD_INT interface table.

Populate the S_PROD_LN base table using the EIM_PROD_LN interface table, and the S_PROD_LN_PROD base table using the EIM_PROD_INT1. You need to populate the S_PROD_INT base table before the S_PROD_LN and S_PROD_LN_PROD base tables so that the PROD_ID key is resolved appropriately.

Does EIM support importing multiple addresses for accounts?

If you are using EIM interface tables, you can explicitly set primary addresses for accounts. If you are not using EIM interface tables, you can still set primary addresses using IF interface tables. 

If you are loading accounts with single addresses, you should use the address fields in the EIM_ACCOUNT table. If you are loading accounts with multiple addresses, do not populate the address fields in the EIM_ACCOUNT table. Instead, use the EIM_ADDR_ORG table to load all addresses for these accounts. If you need to set a primary address in this case, import the primary address using the EIM_ACCOUNT table in one batch, and the rest of the addresses using the EIM_ADDR_ORG table in another batch.

NOTE: This procedure works only for an account that does not already have an address with which it is associated.

 

To set the primary address for an account

1 Populate the EIM_ACCOUNT table with the following primary address data which maps to the S_ORG_EXT and S_ADDR_ORG base tables:

■ ADDR_ADDR

■ ADDR_CITY

■ ADDR_STATE

■ ADDR_ZIPCODE

■ ACCNT_LOC

■ ACCNT_NAME

 

2 Run an EIM import process for the EIM_ACCOUNT table. The address will automatically be set as primary.

 

3 Populate the EIM_ADDR_ORG table with other addresses. Make sure the account data (ACCNT_LOC and ACCNT_NAME) is consistent with that imported earlier in the S_ORG_EXT table. The following columns need to be populated in the EIM_ADDR_ORG table:

■ ADDR

■ CITY

■ STATE

■ ZIPCODE

■ ACCNT_LOC

■ ACCNT_NAME

 

4 Run an EIM import process for the EIM_ADDR_ORG table. The addresses will be associated with the related account.

 

The following example uses this procedure to import two addresses for the ABC CORP account located in SF and sets the 111 MILL ST FREMONT CA 94536 address as the primary address.

 

To set the primary address of ABC CORP as an example

 

1 Insert the primary address into the EIM_ACCOUNT table by executing the following SQL statement:

 

insert into EIM_ACCOUNT (ROW_ID,IF_ROW_BATCH_NUM, IF_ROW_STAT,

PARTY_UID,PARTY_TYPE_CD,ADDR_ADDR,ADDR_CITY,ADDR_STATE,

ADDR_ZIPCODE,ACCNT_LOC,ACCNT_NAME,ADDR_ACTIVE_FLG,

ADDR_BL_ADDR_FLG,ADDR_DISACLEANSEFL,ADDR_MAIN_ADDR_FLG,

ADDR_NAME_LOCK_FLG,ADDR_SHIP_ADDR_FLG,ADDR_ADDR_NAME) VALUES (1,1,'FOR_IMPORT','ABC CORP PARTY','Organization','111 MILL ST',

'FREMONT','CA','94536','SF','ABC CORP','Y','Y','Y','Y','Y','Y','Fremont facility')

 

2 Run an EIM import process by adding or modifying the following process section in the .ifb configuration file:

 

[Import Address Data]

TYPE = IMPORT

BATCH = 1

TABLE = EIM_ACCOUNT

 

3 Insert the remaining address into the EIM_ADDR_ORG table by executing the

following SQL statement:

 

insert into EIM_ADDR_ORG (ROW_ID,IF_ROW_BATCH_NUM,IF_ROW_STAT, ADDR,CITY,STATE,ZIPCODE,ACCNT_LOC,ACCNT_NAME,ADDR_ACTIVE_FL,ADDR_BL_ADDR_FLG,ADDR_DISACLEANSEFL,ADDR_MAIN_ADDR_FLG, ADDR_NAME_LOCK_FLG,ADDR_SHIP_ADDR_FLG,ADDR_ADDR_NAME) VALUES (1, 1,'FOR_IMPORT','2050 LAKE DR','SAN MATEO',‘CA','94555',

'SF','ABC CORP','Y','Y','Y','Y','Y','Y','Fremont facility')

 

NOTE: Make sure that ACCNT_NAME and ACCNT_LOC are populated with the exact data that is in the S_ORG_EXT table for the respective account. 4 Run an EIM import process by adding or modifying the following process section in the .ifb configuration file:

 

[Import Address Data]

TYPE = IMPORT

BATCH = 1

TABLE = EIM_ADDR_ORG

We successfully imported most of our interface table rows and want to delete them. However, we want to leave rows that were not fully imported so that we can examine and correct them. How can we do this?

Each interface table imports data into one or more target base tables.

For example, EIM_ACCOUNT imports into S_ORG_EXT, S_ACCNT_POSTN, S_ADDR_ORG, S_ORG_INDUST, S_ORG_PROD, S_ORG_REL, S_ORG_SYN, S_ORG_TYPE, S_TERR, and S_TERR_ITEM.

Each interface table includes a separate temporary column that contains a status code for each base table into which it has imported data. The names of these columns are contractions of the target base table name.

For example, T_ORG_EXT__STA. T_ indicates that this is a temporary column; ORG_EXT is the first three letters of each word in the target base table name (S_ORG_EXT), and __STA indicates that this is the status column. Note that the extension begins with two underscores.

During import, a row’s status column is set to 0 for those tables into which the row was successfully imported. The IF_ROW_STAT is set to IMPORTED if a row is successfully imported into all target base tables, or PARTIALLY IMPORTED if it is successfully imported into at least one target.

To delete rows that were successfully imported into all target base tables, you could use the following SQL statement: 

delete from EIM_ACCOUNT where (IF_ROW_STAT = 'IMPORTED')

 To delete rows that were successfully imported into specific target base tables, you could use the following SQL statement: 

delete from EIM_ACCOUNT where (IF_ROW_STAT = 'PARTIALLY_IMPORTED' and T_ORG_EXT__STA = 0 and T_ADDORG__STA = 0)

You can also use ONLY BASE TABLES to limit processing.

Pages

Subscribe to Siebel EIM