Search This Blog

SBL-DAT-00320: The specialized method '%1' is not supported on the application.

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2.3 [18361]
Database: IBM DB2 7.1 FixPack 12
Application Server OS: IBM AIX 5L 5.2
Database Server OS: IBM AIX 5L 5.2

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

Symptoms

SBL-DAT-00320

The problem we have encountered is that with our eService implementation, we require a user to login before they are able to see the Home Page. We also have a requirement that on the login page, the there be a "Forgot User" link in case the user forgot their password.

From testing, I have been unable to get the login link to work on the any of the login pages.    We get the following error:

The specialized method 'ToDo: ForgotUser' is not supported on the application.(SBL-DAT-00320)

The next option would be to display the login view instead of the login page. But I have been unable to get this to work. The system will always display the login page. If I turn off explicit logins on the home page, then all I get is the home page.

Is there a way that I can get eService to always display the login view whenever the user first starts up eService or whenever they logout of eService ?

Also, with the 7.7.2 release, is there any way of getting the forgot password link to work from the login page ?

Solution

Message 1

For the benefit of other readers:

The problem was resolved that customer turned explicit login on for the eService Home Page. This will force the application to always display the login view. They then modified the login view to contain the forgot password link. This view is not as nice as the login page was, but it allows customer does what they wanted to do.


Applies to:

Siebel Tools - Version: 7.8.2.10 [19241] to 8.1.1.3[21219] - Release: V7 to V8
Information in this document applies to any platform.
"" Checked for Relevance on 26-NOV-2010 ""

Symptoms

Customer receives an error when trying to use Siebel Desktop Integration control to invoke a business service and workflow to send and receive data. This works fine for thin client but for mobile, it seems to have a limitation size for propertySet.


ERROR
-----------------------
"The specialized method 'RunProcess' is not supported on the application" SBL-DAT-00320

STEPS
-----------------------
By following these steps the issue can be reproduced:
1. Use desktop Integration object.
2. Customer created a .exe and dll to reproduce this issue.
3. Input the data size you want to pass
4. If the size is more than 512, it will raise error.

o Environment
Development 7.8.2.3.

o Where it happened
Dedicated

Changes

Customer used the following code to get the input number and sent the parameter to a workflow:

form1.cs file has the following code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MobileClientTester
{
public partial class Form1 : Form
{
   public Form1()
   {
      InitializeComponent();
   }

   private void button1_Click_1(object sender, EventArgs e)
   {
     try 
     { 
       SIEBELHTMLLib.SiebelHTMLApplicationClass oSiebApp = new  SIEBELHTMLLib.SiebelHTMLApplicationClass();
       if (!oSiebApp.IsReady())
       {
          MessageBox.Show("Siebel is not ready");
          return;
       }
       SIEBELHTMLLib.SiebelService oWPM = oSiebApp.GetService("Workflow Process Manager"); 
       SIEBELHTMLLib.SiebelPropertySet oInput = oSiebApp.NewPropertySet();
       SIEBELHTMLLib.SiebelPropertySet oOutput = oSiebApp.NewPropertySet();
       oInput.SetProperty("ProcessName", "Test");
       string sContent = "";
       for (int x = 0; x < Convert.ToInt32(maskedTextBox1.Text); x++)
          sContent += "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
          oInput.SetProperty("Content", sContent);
          oWPM.InvokeMethod("RunProcess", oInput, oOutput);
       }
       catch (Exception ex)
       {
          MessageBox.Show(ex.Message);
        }
    }
  }
}

Cause


The issue was reproduced internally and a new Bug 12-1S8Q841 - Calls through Siebel Desktop Integration control fail on local clients was raised.

As per Engineering analysis. Siebel.exe includes a web server that responses to IE. The information exchanges are http requests/responses. But there is a limit in the size of the HTTP request that can be treated. By default it is around 524288 bytes.

Solution

To implement the solution, the following steps needs to be done:
Please try the following in a test environment.

1. Open application.cfg file and find [siebel] section
2. Add parameter DataBlockSize = 1048576
3. Retest the issue.
4. If the issue is resolved, please migrate the solution as appropriate to other environments.

Some information that can be considered:
- Default is 512k
- It is in bytes
- Applies to Dedicated web client only
- Determines the maximum length of the HTTP request data that can be passed from IE/Siebel ActiveX to siebel.exe process
- In most of cases, 512K is enough
- If increased, implies that siebel.exe memory usage will reflect the value set, therefore do not set "un-realistic" value

Document enhancement Bug 12-1SM2K0N Document DataBlockSize parameter was raised to add this parameter in Bookshelf.

References

BUG:12-1S8Q841 - CALLS THROUGH SIEBEL DESKTOP INTEGRATION CONTROL FAIL ON LOCAL CLIENTS
BUG:12-1SM2K0N - DOCUMENT DATABLOCKSIZE PARAMETER

Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.2.100 [15252]
Database: Oracle 9.0.1.3
Application Server OS: Microsoft Windows 2000 Advanced Server SP 3
Database Server OS: Sun Solaris 8

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

Symptoms

SBL-DAT-00320

Hi supportteam,

1. Is it possible, to create a toolbar button which starts a Workflow process on the client?
2. Also I want to create a second button at the toolbar named 'Next Step'. This Button fires an   event for continuing the process, started in step 1.

Background therefore:
I want to lead the customer through his business by navigating him through a user interact workflow.
Therefore first I need a button to start this business process workflow.
Within this workflow the customer is leaded to a new view. He has to insert data and he has to click on the second button ('Next Step') after finishing his work. After clicking this button, the application navigates the customer to the next view and so on.

I don't want to create this buttons in all involved applets!

Perhaps it is possible to define this functionality.

Regards and thanks,

Ulrich Himmelmeier

Solution

Message 1

For the benefit of other users, the customer’s requirement was to implement a workflow process that would navigate a user though a number of views using User Interact steps. The idea was that the process would be invoked from a toolbar button and a second “continue” button would enable the user to move to the next view using a runtime event. When the user clicks on the first button, a record is not selected so the Object Id cannot be set.

It was possible to add a toolbar icon in Siebel Call Center that when clicked fired a custom method. This method was captured in the Application_PreInvokeMethod where a script invoked a workflow process that navigated the user to the “Personal Service Request List View”. This was implemented as follows:

In the client:

1. Create a workflow process based on the Service Request business object that includes the following steps:

Start
User Interact
End

2. Configure the User Interact step as follows:

View: Personal Service Request List View

For more information on designing a process and, in particular, a User Interact step, please refer to the Siebel Business Process Designer Administration Guide, Designing Workflow Processes.

In Tools:

1. If necessary, amend the Tools .cfg file so that “Application Toolbar" is visible in the Object Explorer by setting the parameter ClientConfigurationMode to “All”.

2. Select Command and create a new record as follows:

Continued in next entry.

Message 2

Continued from previous entry.

Name: NewCmd
Display Name: NewTbItem
Method: mWFToolbar
Target: Browser

3. Select Application > Siebel Universal Agent > Edit Server Scripts and add the following script to the Application_PreInvokeMethod:


if ((MethodName == 'mWFToolbar')
{
return (CancelOperation);
}
else
{
    return (ContinueOperation);
}

4. Select Application > Siebel Universal Agent > Edit Browser Scripts and add the following script to the Application_PreInvokeMethod:

if (name == 'mWFToolbar')
{
var svc = theApplication().GetService( "Workflow Process Manager" );
var input = theApplication().NewPropertySet();
var output = theApplication().NewPropertySet();
input.SetProperty("ProcessName", "AG User Interact Different BO");
svc.InvokeMethod("RunProcess", input, output);
return ("CancelOperation");
}
else
{
return ("ContinueOperation");
}

This script uses the standard Workflow Process Manager business service to invoke a process called "AG User Interact Different BO" in the application object manager/dedicated web client.

For more information on invoking a process from a script, please refer to the Siebel Business Process Designer Administration Guide, Running Workflow Processes, Invoking a Workflow Process, Invoking From a Script.

5. Select Toolbar and create a new record as follows:

Name : NewToolbar
Display Name : NewToolbar

6. Select Toolbar Item and create a new record as follows:

Continued in next entry.

Message 3

Continued from previous entry.

Name : NewTbItem
Command : NewCmd
Display Name : NewTbItem
Type : Button

7. Select Application > Siebel Universal Agent > Application Toolbar and add a new record as follows:

Toolbar : NewToolbar
Name : NewToolbar
Sequence : <use the next sequence number available>

8. Compile the modified projects to a .srf.

9. Include the new Toolbar in the Siebel Web Template. To do this open the CCFrameViewbar.swt file which is located in the <Siebel_client>\WEBTEMPL directory and add the following lines after the last </swe:toolbar> tag:

<swe:toolbar name="NewToolbar">
<td class="tier2On" valign="absmiddle"><img src="images/spacer.gif" width="1" height="21" alt=""></td>    
<td nowrap>
<swe:toolbaritem property="FormattedHtml"/>
</td>    
<td class="tier2On">&nbsp;</td>    
</swe:toolbar>

For more information on adding a toolbar and toolbar icon please refer to the Siebel Tools Reference, Logical User Interface Objects Configuration, Defining Toolbars and Menus and the Siebel Tools Reference, Physical UI Navigation and Templates, Toolbars and Menus, Toolbar Template Configuration.

Relevant information is also provided in Service Request 38-661396851 “Implementing a new button on a toolbar for Siebel Version 7” on SupportWeb.

Continued in next entry.

Message 4

Continued from previous entry.

A second “Continue” button was added to the Toolbar in the same way, a second User Interact step was added to the process and the following runtime event was added to the first User Interact step:

Next Steps

Branch Name, Type, Next Step, Event Object Type, Event, Event Object, Subevent
<Branch Name>, Condition, < Second User Interact step >, BusComp, PreInvokeMethod, Service Request, mNextStep

When the first button was clicked, the user was taken to the view specified in the process. However, when the second button was clicked the following error occurred:

“[1] An Invoke Mthod [Siebel Universal Agent ==> mNextStep returns error.
[2] The specialized method ‘mNextStep’ is not supported on the application.”

A possible alternative solution was to add a button on the applet to enable the user to move from the first view to the next view.

After clicking the first button on the Toolbar, the following record was displayed in the Workflow Process Log (Site Map > Business Process Administration > Workflow Process Log):

Instance Id: 1-2AHH
Object Id:
Business Object: Service Request
Process Name: AG User Interact Different BO
Status: Waiting

When the continue button on the applet was clicked, the following error occurred:

“Cannot resume process ‘1-2ABX’ for object ‘1-1O44’. Verify that an instance does exist and has a ‘Waiting’ status.

Continued in next entry.

Message 5

Continued from previous entry.

‘1-1O44’ was the Row Id of the record that was automatically set as the active record when the user was navigated to the first view.

Testing showed that it is necessary for an Instance Id and an Object Id to be set for a workflow process instance to be found and resumed and for the next step to be executed. CR 12-I1KM8R has been raised to request that the application is enhanced so that it is possible to resume a workflow process instance without a record being selected and Object Id being specified. Please note that all requests are reviewed and prioritized for possible inclusion in a future release.

The customer decided not to implement the required functionality using a workflow process as it is not currently possible to resume the process instance without setting the Object Id when the process is invoked.

- Siebel Technical Support

Keywords: Workflow Process Toolbar Button Invoke Start Continue User Interact Runtime Event Applet Instance Object Id


Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.1 [18306]
Database: Microsoft SQL Server 2000 SP3
Application Server OS: Microsoft Windows 2003 Server
Database Server OS: Microsoft Windows 2003 Server

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

Symptoms

We have a “GLS Public Portal Account List Applet” which is part of an “All Accounts Across Organizations” view. And we are using XML Command to communicate with the Siebel Server.

In the first response from Siebel (for details see “Siebel response1.xml”), the first method in the RS_HEADER is a PositionOnRow method as shown below.

<METHOD NAME="PositionOnRow">
        <img alt="Record selected" src="images/row_on.gif" border="0" />
</METHOD>

According to the Siebel Portal Framework Guide, the PositionOnRow method “Positions the record as specified in the arguments SWERowIds and SWERowId. If no arguments, does nothing.”

So we sent the following XML Command Block back (see “Siebel request a.xml”) to SWE:
<?xml version="1.0" ?>
<EXEC PATH="/GLSPublicPortal/start.swe">
<CMD NAME="SWECmd" VALUE="InvokeMethod">
<ARG NAME="SWESetMarkup">XML</ARG>
<ARG NAME="SWEMethod">PositionOnRow</ARG>
<ARG NAME="SWERowId">1-33NX</ARG>
<ARG NAME="SWERowIds">SWERowId0=1-33NX</ARG>
</CMD>
</EXEC>

The response we get back is the following error (see “Siebel response a.xml”):

<ERROR>The specialized method 'PositionOnRow' is not supported on the application.(SBL-DAT-00320)</ERROR>

After investigating the javascript in the html response of SWE and some trial and error, we noticed that we need to pass in the SWEView and SWEApplet, so we post the following XML Command back to SWE (see “Siebel request b.xmll”):

<?xml version="1.0" ?>
<EXEC PATH="/GLSPublicPortal/start.swe">
<CMD NAME="SWECmd" VALUE="InvokeMethod">
<ARG NAME="SWESetMarkup">XML</ARG>
<ARG NAME="SWEMethod">PositionOnRow</ARG>
<ARG NAME="SWERowId">1-33NX</ARG>
<ARG NAME="SWERowIds">SWERowId0=1-33NX</ARG>
<ARG NAME="SWEView">GLS Public Portal All Accounts View</ARG>
<ARG NAME="SWEApplet">GLS Public Portal Account List Applet</ARG>
</CMD>
</EXEC>

However in the xml we get back (see “Siebel response 2b.xml”), none of the rows are selected, ie none of the row...

Solution

Message 1

For the benefit of other users:

Description:
Customer was trying to execute the PositionOnRow from XML command block.
Customer was defining the above block based on the PositionOnRow documentation in the Bookshelf > Siebel Portal Framework Guide > Delivering Content to External Web Applications > SWE API > SWE Methods.
The customer noticed that no matter which row id he passed in the command, the first record in the list is the selected one.

Resolution:
Using customer block against the standard application reproduced customer description.
The following command is using the correct syntax for the PositionOnRow:
<?xml version="1.0" ?>
<EXEC PATH='/path/callcenter_enu'>
<CMD NAME="SWECmd" VALUE="InvokeMethod">
<ARG NAME="SWEMethod">PositionOnRow</ARG>
<ARG NAME="SWEView">All Account List View</ARG>
<ARG NAME="SWEApplet">Account List Applet</ARG>
<ARG NAME="SWERowId">1-IXS</ARG>
<ARG NAME='SWESetMarkup'>XML</ARG>
<ARG NAME='SWESetRowCnt'>o</ARG>
<ARG NAME='SWEReqRowId'>1</ARG>
</CMD>
</EXEC>
Change request 12-QAY4PY was logged to have this documentation defect corrected in the bookshelf.
--- Continue ---

Message 2

--- Continue ---
Follow-up:
Customer noticed that when the selected row is the first in the list, the return XML in the method block (for PositionOnRow) on the RS_HEADER section dose not contain ANCHOR block. When other record is selected the ANCHOR is returned correctly.

Change request 12-POUE3C was logged for this product defect.

No comments:

Post a Comment