Skip to main content

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.

Comments

Popular posts from this blog

How to set Profile Attribute in Siebel Workflow

For setting the Profile Attribute in Siebel Workflow, follow below steps: Add Business Service box in workflow. Open Business Service properties. Set  SessionAccessService in Business Service Name. Set  SetProfileAttr in Method Name. Then click on Business Service and set Input Arguments as below: Against Name argument you will add your profile attribute name and against Value argument you will add value for the new profile attribute, it could be from Process Property or Literal.

How to call Popup Applet through Server Script in Siebel

Background: Based on the requirements you need to show data or reports on a popup applet. You can invoke popup applet using workflow (below business service will be used in business service step), applet server script or browser script and using vanilla method and setting field user properties. Procedure: Below is the script for calling popup applet through server script: if (MethodName == "MethodName") { var oServiceAF = TheApplication().GetService("SLM Save List Service"); var inputPropAF = TheApplication().NewPropertySet(); var outputPropAF = TheApplication().NewPropertySet(); inputPropAF.SetProperty("Applet Name","ABC Popup Applet"); inputPropAF.SetProperty("Applet Mode","6"); inputPropAF.SetProperty("Applet Height", "700"); inputPropAF.SetProperty("Applet Width", "700"); oServiceAF.InvokeMethod("LoadPopupApplet", inputPropAF, outputPropAF) return (CancelOperati...

How to create and publish Inbound Web Service in Siebel based on Workflow

Inbound Web Services: The Inbound Web Service allows an external system to call a Siebel published Web Service. You can publish a business service or a business process as a Web Service and generate a Web Service Definition Language (WSDL) file that an external system can import. The Inbound Web Services can only be published from Siebel C using SOAP-RPC binding. Source: Oracle Docs What Is The Difference Between Web Services and APIs? An API is an interface that allows you to build on the data and functionality of another application, while a web service is a network-based resource that fulfills a specific task. Yes, there’s overlap between the two: all web services are APIs, but not all APIs are web services. Both web services and APIs are — at their core — very useful and very much used today. However, it’s the web services associated with SOAP and/or Service Oriented Architecture which are falling out of favor. Source: NordicApis Process: Prepare the workflow which will serve as Si...