Search This Blog

SBL-DAT-00456: Link '%1', referred to in multi valued link definition '%2', business component definition '%3', does not exist.

Applies to:

Siebel Tools - Version: 7.5.3.5 SIA [16183] and later   [Release: V7 and later ]
z*OBSOLETE: Microsoft Windows 2000
Database: Oracle 9.2.0.4
Application Server OS: Microsoft Windows 2000 Advanced Server SP 3
Database Server OS: Microsoft Windows 2000 Advanced Server SP 2

This document was previously published as Siebel SR 38-3065128651.

""Checked For Relevance on 30-06-2010""

Symptoms

Dear Siebel Support ,

When we create a New Account, before saving the record we undo it or Cancel it. The record doesn't gets inserted in S_ORG_EXT Table, but the child records exists in Intersection Tables (S_ORG_TERR & S_ACCNT_POSTN Tables).

The example can be -
The record exists in S_ORG_TERR (OU_ID Column) and S_ACCNT_POSTN (OU_EXT_ID Column) Tables, where as the record doesn't exist in the parent Table S_ORG_EXT (ROW_ID Column).

We tried solving this problem by setting the Cascade Delete Property of the Link to Delete / Clear, but it throws following error -

"We detected an Error which may have occurred for one or more of the following reasons:

Link 'Account/Assignment Group', referred to in multi valued link definition 'Territory', business component definition 'Account', does not exist.(SBL-DAT-00456)"

We checked for the above mentioned error but the Multi Valued Link "Territory" in Account BC exists with the Destination Link for "Account / Territory".

This Problem persists for generally all Intersection tables.

Solution

Message 1

For the benefit of other users:

The customer’s behavior was reproduced on the standard Siebel application by:

1.    Creating a new Account

2.    Checking the row_id (Help > About Record)
               This will populate the Account Team Field in the form applet

3.    Then the user would Cancel or Undo the new Accout

The following queries were then ran against the database:

Select * from S_ORG_EXT where ROW_ID = '<Stored in Step 1>'
Returned no row, which is correct.

Select * from S_ACCNT_POSTN where OU_EXT_ID = '<Stored in Step 1>'
Returned a row, which is incorrect.

The following change request (Bug 12-1F0VBCE) was raised as a product enhancement to remove the row from the table (S_ACCNT_POSTN) when an undo record is performed. Please note that enhancement requests are reviewed and prioritized by Engineering and Product Marketing and will be potentially available in future Siebel product releases.

However the record is removed from the table in the following scenarios:

During a Re-Query a roll back is done and the row is no longer in the table. (S_ACCNT_POSTN).

If a user clicks on another screen a roll back also occurs. When a user logs out, the row is no longer in the above table.

When the session times out the row is also rolled back from the above table.

[1/2]
Continued......

Message 2

[2/2]

The following script provided a workaround for the user where it captured the current search expression and refreshes the applet with the captured search expression. This example is purely for demonstration purposes and it assumed that this would be tested thoroughly in your own environment before implementation.

function WebApplet_InvokeMethod (MethodName)
{
    if (MethodName == "UndoRecord")
    {
        var test;
        var oAccountBO = TheApplication().ActiveBusObject();
        var oAccountBC = oAccountBO.GetBusComp("Account");
        test = oAccountBC.GetSearchExpr();
        
        if (test == "")
        {
            oAccountBC.ClearToQuery();
            oAccountBC.ExecuteQuery();        
        }
        else
        {
            oAccountBC.ClearToQuery();
            oAccountBC.SetSearchExpr(test);
            oAccountBC.ExecuteQuery();
        }
    }
}

Thank you,

Siebel Technical Support

No comments:

Post a Comment