Join in business component definition %1 has source fields that come from tables %2 and %3 SBL-DAT-00452

1: Error

Join in business component definition '%1' has source fields that come from tables '%2' and '%3' (SBL-DAT-00452).

2: Steps on which error occurred

2.1. In Business Component created new Join by providing table, alias and outer join flag checked.

2.2. In Join Specification created new record provided the destination column and source field (field is based on base table of the business component).

2.3. In Join Specification created new record provided the destination column and source field (field is based on other table, added using join).

2.4. Created new field based on the new join and exposed in applet.

2.5. Compiled the objects and open Siebel application.

2.6. When navigate to view Siebel returned the above error.

3: Findings and Conclusion:

When inspecting the Object Manager (Public Sector) logs could not able to find the exact reason but just the above error.

When checked on Oracle Docs found out that documentation is saying that in Join Specifications Source Field property must not be empty if destination column is other than the ROW_ID, but that's not the case Siebel won't accept field which is comping from the join in Source Field property of the join specification. But in case Employee join Emp Id is comping from Position join and it is working might be due to there is only one join specification. (Note: Table of Business Component was empty on which new join was created with two join  specifications).

4: Oracle Documentations

4.1: Title

SBL-DAT-00452 Error with Join With Different SourceTables Blocked, but Underlying Database Has No Restriction To It (Doc ID 2429504.1)

4.2: Description

The Source Field property of the join specification identifies the foreign key field in the business component. If left empty, then the Source Field is the Id field, which indicates a one-to-one relationship between the business component and the joined table. Siebel CRM sometimes defines a system field as the foreign key field in the Source Field property. The Created By and Updated By fields are examples of system fields. For more information, see System Fields of a Business Component. The Destination Column property identifies the primary key column in the joined table. If the join occurs on a column other than ROW_ID, then the Destination Column property must not be empty. An empty value in the Destination Column property indicates that the destination column is ROW_ID, which is typically the primary key in a table. In rare situations, multiple join specifications can exist in a single join. For example, the Sub Campaign business component includes a join to the S_LANG table with two join specifications. In these situations, the source fields in the join specifications must reference the same table. For more information, see Join Specification.