Search This Blog

SBL-DAT-00321: The specialized method '%1' is not supported on this business component.

Applies to:

Siebel Tools
Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] Fin Svcs
Database: Oracle 10.2.0.2
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: IBM AIX 5L 5.1

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

""Checked for Relevance on 28-May-2010""

Symptoms

We have a requirement to invoke an Mvg Applet on a button click. As suggested in the FAQ 1874 and SR 38-1139545461, I have written the browser script to use the sendkeys to invoke the applet. However I am not being able to invoke the applet and receving the error that "Siebel Error Message SBL-DAT-00321: The specialized method '%1' is not supported on this business component.". Please go through the attached sif and let us know if there are any changes required.

Cause

.

Solution

Here is a suggestion to open a MVG applet via a button on a form applet, for example the standard applet 'Contact Form Applet'. The control involved in this scenario is 'Account' labeled "Account Name" in the UI. The MVG applet is 'Account Mvg Applet'.

1. Add a control like the following on Contact Form Applet:
- - -
Name: TEST
Caption: TEST
Method Invoked: TEST
HTML Type: MiniButtonEditNew
- - -

2. Add the following Applet Server Script to this applet:
- - -
function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
{
if(MethodName == "TEST")
    {     
    CanInvoke = "TRUE";
    return (CancelOperation);
    }
else
    return (ContinueOperation);
}
- - -

3. Add the following function in the Applet Browser Script (general) (declarations) section:
- - -
function OpenMVG()
{
    var WshShell = new ActiveXObject("WScript.Shell") ;
    WshShell.SendKeys("{F2}");
    WshShell = null;
}
- - -

4. Add the following Applet Browser Script:
- - -
function Applet_PreInvokeMethod (name, inputPropSet)
{
if (name == "TEST")
    {
    var appFocus = theApplication().FindApplet("Contact Form Applet");
    var objControl = appFocus.FindActiveXControl("Account");
    if (objControl.canHaveHTML == false)
         {
            objControl.focus();
        }
    else
        {
            var objFocus = objControl.getElementsByTagName("Input");
            objFocus = objFocus[0];
            objFocus.focus();
        }

    setTimeout("OpenMVG()",200);

    return ("CancelOperation");
    }
else
    return ("ContinueOperation");
}
- - -

Note that it is needed to delay the execution of the SendKeys functionality after that the focus is set to the control involved. Hence the use of the setTimeout JavaScript function that waits for a specified amount of time before running the function specified:
- - -
setTimeout("OpenMVG()",200);
- - -

The setTimeout JavaScript function is discussed on My Oracle Support in particular in Note 477070.1, Note 477323.1 and Note 476677.1.

The SendKeys functionality is also discussed in several postings on My Oracle Support, in particular in Note 476894.1.

Note that this solution requires adjusting browser security settings to enable instantiation of ActiveX controls like WSH.

<<Bud 12-1MN92JI>> has been logged asking to provide a simpler mechanism to open a Pick or a MVG Applet via script.

References

NOTE:477070.1 - How Can You Use Browser Script in Siebel 7 onwards to Set Focus on a Different Applet or Control?
NOTE:477323.1 - How Can You Display a Message from a Server Script on the Browser?
NOTE:476677.1 - How can users force an OnLoad event in browser script?
NOTE:476894.1 - Can SendKeys be used to send keystrokes to other applications?
BUG:12-1MN92JI - PROVIDE A SIMPLE MECHANISM TO OPEN A PICK OR A MVG APPLET VIA SCRIPT

Applies to:

Error Message Area:Data Manager - DAT
Version:Siebel 7.7

Purpose

This document is intended to provide cause and corrective action information about Siebel Error Message SBL-DAT-00321: The specialized method '%1' is not supported on this business component.

Scope

This document is informational and intended for any user.

SBL-DAT-00321: The specialized method '%1' is not supported on this business component.

Explanation

This message normally occurs when a custom script or Workflow Process attempts to call a custom or built-in method, and there is an error in the configuration or set up of the custom method. It may also occur due to issues with special class objects. Typical causes include:

1. You have written a custom method in Siebel scripting, and the PreCanInvokeMethod for the object on which the method is called does not return CancelOperation. Methods invoked from a button on an applet or within a script on applet or buscomp follow a flow of PreInvokeMethod and InvokeMethod on the various objects involved, both in browser and server script, ending with the business component. If a custom method is not cancelled, the buscomp tries to treat the method, and if it is not defined on the buscomp, this error is triggered.

2. You have defined a Workflow Process specifying a runtime event on a Condition branch of a Start step, and the Event Cancel Flag is set to FALSE.

3. You have changed the Class property of a standard applet which normally uses a special class.

4. You have written a script invoking a specialized method which has not been documented for use in custom configuration.

5. The error occurred on an implementation of Siebel Handheld, because a BusComp User Property that is not supported on Siebel Handheld was referenced by a field or other object included in the Siebel Handheld configuration.

6. In Siebel applications version 7.5.3, you are trying to invoke a special event registration method through a custom button.

7. Custom methods with non-unique names are exposed on applets which are on the same view.

8. In Siebel Tools, the script object itself has the Inactive property set to TRUE.

Corrective Action

1. In Siebel Tools, review the PreCanInvokeMethod event for the object on which the script or custom method is placed. If the script or method call is on a button, review the PreCanInvokeMethod event code for the applet. Make sure that the case handling the invocation of the custom method includes a return (CancelOperation) call. For more information, refer to the following sections of Siebel Bookshelf version 7.7 > Siebel Object Interfaces Reference > Interfaces Reference:
a. Applet Events > WebApplet_PreCanInvokeMethod Event
b. Business Service Events > Service_PreCanInvokeMethod Event

2. Check the Workflow Process properties and make sure the Event Cancel Flag is set to TRUE. Also check the Start step branches and ensure the Type properties are correctly set to Default or Condition. For more information, refer to the following sections of Siebel Bookshelf 7.7 > Siebel Business Process Designer Administration Guide:
a. For Developers: Understanding How Workflow Processes Are Designed > Invoking Workflow Processes > Invoking a Workflow Process from a Run-Time Event
b. For Developers: Workflow Process Steps > Field Descriptions for Defining Workflow Process Steps > Field Descriptions: WF Step Branch Applet

3. If the error occurs using a specialized, non-custom method on a standard applet, check the Class property of the applet and make sure it has not been changed. If necessary change it back to its original value.

4. If you are using the InvokeMethod method to call a specialized method, make sure the method is one described in the Siebel Object Interfaces Reference. Siebel Systems does not support calling specialized methods unless they are documented in that book. For more information, refer to Siebel Bookshelf version 7.7 > Siebel Object Interfaces Reference > Interfaces Reference > Applet Methods > InvokeMethod Method.

5. In Siebel applications version 7.5.3: In the .cfg file used for your Siebel Handheld application, use the directive DefaultBCUserProps to define only those BusComp User Properties which you need on the handheld application. In Siebel applications version 7.7: define only the necessary BusComp User Properties in Mobile Administration > Application Administration > Settings.

6. In Siebel applications version 7.5.3, do not attempt to invoke a business service for special event registration through a custom button. In this case, the code is relying upon specific properties of the applet and it will not work if you call it in a different context. Rewrite your script to mimic the actions taken by this business service.

7. Make sure that method names are always unique. For more information, refer to Siebel Bookshelf version 7.7 > Siebel Object Interfaces Reference > Programming > Siebel Object Interface Events and Siebel Extension Events > Unique Names.

8. In Siebel Tools, check the script object itself in the Object List Editor and make sure the Inactive property is set to FALSE.


Applies to:

Siebel Tools
Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] Fin Svcs
Database: Oracle 10.2.0.2
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: IBM AIX 5L 5.1

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

""Checked for Relevance on 28-May-2010""

Symptoms

We have a requirement to invoke an Mvg Applet on a button click. As suggested in the FAQ 1874 and SR 38-1139545461, I have written the browser script to use the sendkeys to invoke the applet. However I am not being able to invoke the applet and receving the error that "Siebel Error Message SBL-DAT-00321: The specialized method '%1' is not supported on this business component.". Please go through the attached sif and let us know if there are any changes required.

Cause

.

Solution

Here is a suggestion to open a MVG applet via a button on a form applet, for example the standard applet 'Contact Form Applet'. The control involved in this scenario is 'Account' labeled "Account Name" in the UI. The MVG applet is 'Account Mvg Applet'.

1. Add a control like the following on Contact Form Applet:
- - -
Name: TEST
Caption: TEST
Method Invoked: TEST
HTML Type: MiniButtonEditNew
- - -

2. Add the following Applet Server Script to this applet:
- - -
function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
{
if(MethodName == "TEST")
    {     
    CanInvoke = "TRUE";
    return (CancelOperation);
    }
else
    return (ContinueOperation);
}
- - -

3. Add the following function in the Applet Browser Script (general) (declarations) section:
- - -
function OpenMVG()
{
    var WshShell = new ActiveXObject("WScript.Shell") ;
    WshShell.SendKeys("{F2}");
    WshShell = null;
}
- - -

4. Add the following Applet Browser Script:
- - -
function Applet_PreInvokeMethod (name, inputPropSet)
{
if (name == "TEST")
    {
    var appFocus = theApplication().FindApplet("Contact Form Applet");
    var objControl = appFocus.FindActiveXControl("Account");
    if (objControl.canHaveHTML == false)
         {
            objControl.focus();
        }
    else
        {
            var objFocus = objControl.getElementsByTagName("Input");
            objFocus = objFocus[0];
            objFocus.focus();
        }

    setTimeout("OpenMVG()",200);

    return ("CancelOperation");
    }
else
    return ("ContinueOperation");
}
- - -

Note that it is needed to delay the execution of the SendKeys functionality after that the focus is set to the control involved. Hence the use of the setTimeout JavaScript function that waits for a specified amount of time before running the function specified:
- - -
setTimeout("OpenMVG()",200);
- - -

The setTimeout JavaScript function is discussed on My Oracle Support in particular in Note 477070.1, Note 477323.1 and Note 476677.1.

The SendKeys functionality is also discussed in several postings on My Oracle Support, in particular in Note 476894.1.

Note that this solution requires adjusting browser security settings to enable instantiation of ActiveX controls like WSH.

<<Bud 12-1MN92JI>> has been logged asking to provide a simpler mechanism to open a Pick or a MVG Applet via script.

References

NOTE:477070.1 - How Can You Use Browser Script in Siebel 7 onwards to Set Focus on a Different Applet or Control?
NOTE:477323.1 - How Can You Display a Message from a Server Script on the Browser?
NOTE:476677.1 - How can users force an OnLoad event in browser script?
NOTE:476894.1 - Can SendKeys be used to send keystrokes to other applications?
BUG:12-1MN92JI - PROVIDE A SIMPLE MECHANISM TO OPEN A PICK OR A MVG APPLET VIA SCRIPT

No comments:

Post a Comment