Thursday, December 11, 2014

Contacts imported through EIM but not visible on UI

I would like share one of the most common issue while importing contacts in siebel. Let me put it in a problem and solution format:

Problem: 

Contacts are imported in siebel with IF_ROW_STAT as IMPORTED value in EIM_CONTACT but they are not visible on UI. I checked the contacts with siebel administrator position and i am able to see those contact in My teams Contacts and All Contacts views, but the same are not visible to employees who have the visibility of these contacts in My Contacts view

Solution:

1. Check these tables for contacts and its references:

S_PARTY
S_CONTACT
S_CONTACT_BU
S_POSTN_CON

If the contact is imported correctly in S_CONTACT table, pick any row_id say, '1-3KHD-11' and execute the below queries:

select * from siebel.s_party where party_id = '1-3KHD-11';

select * from siebel.s_contact_bu where contact_id = '1-3KHD-11';

select * from siebel.s_postn_con where con_id = '1-3KHD-11';


All the above queries should return at least one record. If not, import data into that table and it will be visible.

2. Check all the search specification on applet as well as Business component level, verify that the search spec condition matches for the records imported.

3. Check the contacts from UI with the position that has the visibility of the contact.


Explanation:

Most of the time, when the contacts are not visible on UI, the common perception is that position would not have been associated correctly. Well, this may be correct for most of the times, but at times we commit some silly mistakes by missing S_CONTACT_BU table in the IFB file parameter ONLY BASE TABLES.

All contacts should have a BU association in S_CONTACT_BU table to be visible on UI. S_CONTACT_BU is the intersection table for S_CONTACT and S_BU. Once this association is properly made, the contacts would be visible to the employee who has the visibility.

Visibility of the contacts also depends on the contacts and position intersection table S_POSTN_CON. For instance, if for a contact row Id, there are 3 records in S_POSTN_CON, this means 3 positions are allowed to see this contact in their My Contacts view. This does not mean that none other than these 3 can see the contacts. The visibility of the contacts apart from assigned positions is also based on the position hierarchy in the organization.

So the first thing we can do is to check all the four tables for correct import. If any discrepancies found, it can be troubleshooted based on the logs.

Next thing is to check the search specification on applet and BC level. For example, if the applet level search spec has [Type] = "Customer" then the imported rows must satisfy this condition to be visible on the contact applet. Similarly if on BC there are any search spec, it should also be satisfied by the imported records.

These information are very basic and fundamental in nature which may help beginners to understand the debugging methods while importing.