October 24, 2015

Links Demystified

I feel no shame in admitting that it took me years to fully understand the extensibility of Siebel links. I hope after reading this post you will start appreciating the Siebel even more as I did.

Let's look at the simpler links first.

1:M links
These links creates simple parent child relationship. One parent can have many children. And children records have parent id (foreign key field).

Order Entry - Orders : Order Entry - Line Items link

Order Entry - Orders and Order Entry - Line Items is perfect example. Source Field is "Id" of "Order Entry - Orders" BC and destination field is "Order Id"  of Order Entry - Line Items. Whenever system creates a line item under an order record, Siebel populates order id on order item record with ROW_ID of Order to create relationship.

M:M links
These are also comparatively simple links. Two entities (table) are related to each other using an intersection table. Intersection table helps to associate one child to other parents as well.

Account Contact link using S_PARTY_PER

For example Account and Contact link. This link allows to associate one contact to multiple accounts. In addition to the inter table Siebel stores id of primary record ( primary id field) to improve performance.

Now let's look at the interesting bits.

M:M links with source id field specified.

In standard M:M links these fields are blank and inter table stores the ID of both parent and child records. When parent id field is also specified with inter table Siebel uses field value instead of ROW_ID of parent to create intersection record.These types of links are not very common but are possible.

For Example:
M:M link with Source Field specified

Lets consider Action/FINCORP Account link, this link has Source Field specified as Primary Contact Id which means when child records are created using this link Siebel will populate Contact Id into Inter Parent Column instead of Action Id.

M:M link with both inter table and source and destination field specified.
Things now gets more interesting when both source and destination fields are specified and inter table is also specified.This way Siebel uses fields specified on the links instead of Id to create association.

Link with both Source Field and Destination Field along with inter table.
The link shown above specifies Campain Id and Destiation Field as Contact Id, thus while creating record in inter table Siebel will use Campaign Id fields instead of Id and Same applies for destination field. Interesting isn’t it???

Finally links which are overridden by MVL's
If you are following it correctly then you might think all these complicated links should be able to satisfy all possible scenarios. Just then Siebel steps up the game with multi value links. On these MVL's definition Siebel allows to override the parent id being used on the link.

So with help of primary id field override, potentially in action to contact mvl instead listing all the contacts of selected activity, Siebel can show all the contacts of parent account selected on activity. :) This over riding is allowed both on 1:M link and M:M link.

Cheat sheet for your desk:

If you have understood all of the above then I would recommend you to explore how links are used for access control and visibility of detail bus comps.

Hope it helps.

No comments :

Post a Comment