Specialized method not supported SBL-DAT-00322

When we enter in the world of Siebel development one of the first things that a developers try his hand on is adding a button to an applet and try to invoke functionality on click of it, which is generally a popup saying ‘Hello World’ if he is just out of college 🙂

But more often than not we end up getting error message like

The specialized method ‘%1’ is not supported on Business Component ‘%2’ used by Business Object ‘%3’.(SBL-DAT-00322)

Reason:

This error appears because we have not handled the method in our scripting or we have missed a step or two while configuring that button.

Siebel scripting is event based which means that every user action results in some kind of event which should be handled either by the user or by Siebel.

For example clicking on “New” button results in triggering of a method called NewRecord which is handled by underlying classes of that buscomp. But I create a custom method say “MyMethod” there is no way for Siebel to know what this method should do? So, it is the responsibility of the user to handle this event. And we have to do it at some level it can be at BusComp or Applet.

Handling the event here means that there should be something like

If(MethodName == “MyMethod”)
Do this
return (CancelOperation);

In the above code the most important thing to note down is statement return (CancelOperation) which tells Siebel to stop the flow of events and return.

If I miss this statement then the flow of events will eventually reach Siebel classes and I will end up getting above mentioned error message as siebel classes doesn’t have the code to handle this custom method.

Solution:

If you have created a custom method handle it at appropriate level and issue a return cancel operation statement. Let’s take an example

I have added a button on applet with method name as “MyMethod
*You can also use technique described in EventMethod Post of renaming method name to EventMethodMyMethod which will help you to eliminate scripting at Applet PreCanInvoke method.

Now at underlying BC or Applet Server Script I will have to write code saying

if (MethodName == “MyMethod”)
 {
     mylogic
     return(CancelOperation);
}

Happy reading !!!

13 Responses to Specialized method not supported SBL-DAT-00322

  1. Hi,

    Thanks for posting this. I am learning now Siebel VB.

    Can you please let me know how to display message in a popup on button click i.e, inside the custom method, what is the command used to output message?. I tried TheApplication.RaiseErrorText(“Hi”), but it did not work.

    Thanks
    Praveen

  2. Hi,

    Thanks for posting this. I am learning now Siebel VB.

    Can you please let me know how to display message in a popup on button click i.e, inside the custom method, what is the command used to output message?. I tried TheApplication.RaiseErrorText(“Hi”), but it did not work.

    Thanks
    Praveen

  3. RaiseErrorText is a kind of exception and it should be appropriately handled using try catch block. The Control automatically flows to Catch if you have written RaiseErrorText in your try block. So once you have raised any error in try then write following code in catch

    catch(e)
    {
    TheApplication().RaiseErrorText(e.toString());
    }

  4. RaiseErrorText is a kind of exception and it should be appropriately handled using try catch block. The Control automatically flows to Catch if you have written RaiseErrorText in your try block. So once you have raised any error in try then write following code in catch

    catch(e)
    {
    TheApplication().RaiseErrorText(e.toString());
    }

  5. How do i get the records from the VBC Popup Applet and added to the parent applet where the pop up applet is baseb…

    In my case i have a applet “ship to list applet” based on BC: “shipTo”

    on applet “ship to list applet” i have a new button when i hit on this new button a popup applet comes which is based on VBC.

    The popup applet will display records.

    how to add the popup applet records to applet “ship to list applet” based on BC: “shipTo”

    • Add the same fields of your popup applet on your applet “ship to list applet” and it will populate to BC and visible to your applet “ship to list applet”.

  6. How do i get the records from the VBC Popup Applet and added to the parent applet where the pop up applet is baseb…

    In my case i have a applet “ship to list applet” based on BC: “shipTo”

    on applet “ship to list applet” i have a new button when i hit on this new button a popup applet comes which is based on VBC.

    The popup applet will display records.

    how to add the popup applet records to applet “ship to list applet” based on BC: “shipTo”

  7. Hi

    What if you dont want to use script in your solution of custom method on a button, if you want to invoke a business service from the button how do you invoke this without getting the error about specialized method not supported? How do you CancelOperation if you are not using script?

  8. Hi

    What if you dont want to use script in your solution of custom method on a button, if you want to invoke a business service from the button how do you invoke this without getting the error about specialized method not supported? How do you CancelOperation if you are not using script?

Leave a Reply

Contribute