Configuring Siebel Business Applications > About Business Components, Fields, Joins, and Links > About Joins >
Guidelines for Creating a Join
If you create a join, then use the following guidelines:
- Use a join only if it gets no records or only one record. For example, use a join to get the primary account for an opportunity.
- Create a join only if the business component does not already include a join to a table that includes the data you require, and only if a foreign key value exists between the base table of the business component and the joined table.
- Create a join only if Siebel CRM stores the foreign key value in a field that is not already defined as a source in a predefined join.
- If you use the Alias property to create an alias for each join, then a business component can include more than one join that references the same destination table. For example, the Action business component includes two joins that reference the S_CONTACT table:
- The Owner join gets the person who created the activity.
- The Primary Contact join gets the contact that is associated with the activity.
- Make sure the Alias property of the join is unique even though the destination table is the same. Do not use the table name as the Alias name, even though this is common in the predefined Siebel repository. An implicit join uses the table name as the Alias to make sure that the name of the explicit join is not used. To make sure that no conflict exists, you must always create a unique alias name for the join.
Guidelines for Creating Joins With a Party Table
If you create a join that does or does not involve a party table, then use the following guidelines:
- If you bring party data to a nonparty business component, then create a new join where the join specification references PAR_ROW_ID.
- If you bring party data to a party business component, then use the appropriate explicit join.
- If you map fields in a party business component, then use the implicit join for the extension table.
- If a join references a table that is a party table, then you must display the foreign key value as the source field. Unlike a join to a table that is not a party table, the destination column must reference the PAR_ROW_ID column in the joined table.
- If a join references a table that is not a party table, then Siebel CRM can only update the column that the field in the parent business component that contains the foreign key value references. You must define the following objects:
- The joined table.
- The join specification. The source field property must reference the parent business component that stores the foreign key value. The destination column property must reference the child table, which is typically ROW_ID.
For more information, see How the S_Party Table Controls Access.