Scripting error (SBL-DAT-00416) or (SBL-BPR-00187) in Applet Level Sort Spec (Doc ID 540049.1)

Last updated on JUNE 16, 2017

Applies to:

Siebel Tools - Version 7.5.3.1 SIA [16161] and later
Information in this document applies to any platform.

Goal


User is having problems setting a sort spec only on a specific applet.
The requirement is that the Service Request "Group" applet is sorted ASCENDING by the Opened Date field.
Every other applet in Service Request must be sorted by the BC default Opened Date (DESCENDING).
In BC SortSpec default user has "Opened Date (DESCENDING)"

User has accomplished the requirement to some extent by setting a global variable on the load method of the Service Request Group applet, and then getting that variable in the BusComp_PreQuery event of the BC.
If the variable is not null the sort spec is set  to the contents of the global variable set in the Load event of the Group Applet. So...

Set the global variable on the Service Request Group Applet's load event...

function WebApplet_Load ()
{
    TheApplication().SetSharedGlobal("gSRGroupSort","Opened Date(ASCENDING)");
}



Get the global variable and set the sort spec on the BC's PreQuery event...

function BusComp_PreQuery ()
{
    var sSearchSpec = this.GetSearchExpr();
    var sGroupSortString = TheApplication().GetSharedGlobal("gSRGroupSort");

    if (sGroupSortString != "")
   {
        this.ClearToQuery();
        this.ActivateField("Opened Date");
        this.SetSortSpec(sGroupSortString); //sGroupSortString
    }
    else
    {
        if(sSearchSpec != "")
        {
             this.ClearToQuery();
             this.SetSearchExpr(sSearchSpec);
         }
        else
        {
            this.ClearToQuery();
            this.ExecuteQuery();
         }
    }//end if/else

    TheApplication().SetSharedGlobal("gSRGroupSort","");

    return (ContinueOperation);
}



As seen from the above code one of the problems encountered was that the sort spec was not being reset to the default once you left the Service Request Group Applet (all other service request applets were being sorted Opened Date(ASCENDING) as well).
So as a workaround ClearToQuery() was used  if the global variable was null. This worked for the sorting of the applets, but it would not allow any user queries to function because they were all cleared on the BusComp_PreQuery.
So when the the complete code as above was added , which grabs the search expression before clearing the query so that the the search expression can be reset  after clearing the query.
This is almost a complete solution because with this code the user can query as needed in the application and all the sorting works correctly.
However the problem now is that this code breaks user's service request workflows at all of the query steps.


In the workflow query step there is an expression: "[Object Id] ='"+[&Object Id]+"'" it is at this step that the error occurs. The workflow works fine when the code is commented out. The error produced by the workflow is as follows...

---------------------------
Microsoft Internet Explorer
---------------------------
[1] Error updating business component at step 'Update Escalated Flag'.(SBL-BPR-00187)
[2] Error processing Siebel Operation for:
Business Object 'CC Service Request'
Business Component 'CC Service Request'
Primary Id '1-9EGLX'
Operation 'Update'(SBL-BPR-00100)
[3] No field matches identifier 'Object Id'.

Please ask your systems administrator to check your application configuration.(SBL-DAT-00416)
---------------------------
OK
---------------------------

Is it possible with e-script to clear the sort spec without clearing the entire query? I have tried
Setting the sort spec to "" was tried but that does not seem to work.


Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms