Thursday, July 8, 2010

ClientBusinessService - 772 - 8.0 Application User Property


Browser Script [ID 497813.1]

Modified 08-FEB-2010 Type PROBLEM Status MODERATED

In this Document
Symptoms
Cause
1. Invoking a server-side business service
2. Browser script not being able to invoke another browser script
Solution
1. Invoking a server-side business service
2. Browser script not being able to invoke another browser script


Platforms: 1-914CU;

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to:

Siebel Tools - Version: 7.7.2 SIA [18325] - Release: V7
IBM AIX on POWER Systems (64-bit)
Product Release: V7 (Enterprise)
Version: 7.7.2 [18325] Fin Svcs
Database: Oracle 9.2.0.5.0
Application Server OS: IBM AIX 5L 5.2
Database Server OS: IBM AIX 5L 5.2
Checked for Relevance on 02-Feb-2010

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

Symptoms

A customer faced two issues with browser scripting during upgrade from version 7.5.3 to version 7.7.2.

1. A browser script seemed not to be able to invoke a server-side business service. The resulting output property set remained empty.

Example :

var psInput = theApplication().NewPropertySet();
var srvService = TheApplication().GetService("RB Refresh Financial Account");

psInput.SetProperty("AccountNumber", this.BusComp().GetFieldValue("Account Number"));
psInput.SetProperty("AccountType", "CA");
psInput.SetProperty("UserID", this.BusComp().GetFieldValue("Customer Number"));

var psOutput = srvService.InvokeMethod("Refresh", psInput);

if (psOutput.GetProperty("ReplyMsg") != "")
...

The statement psOutput.GetProperty("ReplyMsg") always returns nothing.


2. A browser script seemed not to be able to invoke another browser script in the Application object, (general) section, that was referenced by a variable in the "top" object of the browser's domain object hierarchy.

Example:

function Applet_Load ()
{
try
{
var sBgColor = "";
var sLastDate = this.BusComp().GetFieldValue("RB1 Online Trans Date");

if ( (sLastDate.length != 0) && (sLastDate.substring(0, 10) == top.GetCurrentDate()) )
sBgColor ="G";

top.SetOnlineControls(this,sBgColor,"CurrentBalance","CashBalance","Effective");
}
catch (e)
{
alert ("Error Applet_Load (CA) : " + e.toString());
}
}


The function SetOnlineControls is defined as follow in the (declarations) section :

top.SetOnlineControls = SetOnlineControls;

function SetOnlineControls(oApplet, sBgColor)
{
...
}


Cause

1. Invoking a server-side business service

In order to make server-side business services visible to browser scripts, the configuration file must contain a reference to the business service in section [SWE]:
ClientBusinessService =
Here, is a number starting at 0, to allow multiple entries. The numbers must form a continuous sequence: 0,1,2,...

It was found that the customer had a gap in the sequence of numbers which made the internal algorithm stop searching for more ClientBusinessService entries.

2. Browser script not being able to invoke another browser script

Research revealed that the browser script in fact did invoke the method in the Application object; however, the called method silently exited due to errors.

The following behaviors were observed:

a. In version 7.7.2 SIS, some controls have been renamed; for example, Name became Name5, or Account became Accont2 on the applet where the script should operate on. Therefore the script, which was still searching for the previous names, could not find the controls.

Bug 12-U1WUOY was raised to address the control naming issue.


b. Calling .SetProperty("BgColor", "f0f0f0") failed.

This happened because SetProperty expects that the color value starts with a hash sign, for example: "#f0f0f0".
Bug 12-TRF8VL was raised to request that the hash sign is not mandatory.


c. Calling .SetProperty("BgColor", ...) fails for read-only controls. The background color gets overwritten by the gray background that indicates the read-only status.

Bug 12-U0U7I9 was raised to request the ability to set the background color of a read-only control.


Solution

1. Invoking a server-side business service

When adding client-side business services to the [SWE] section of the configuration file, ensure that the entries are numbered in a continuous way:
ClientBusinessService0 =
ClientBusinessService1 =
ClientBusinessService2 =
etc.

2. Browser script not being able to invoke another browser script

a. Control names changed in version 7.7.2 SIS.

Solution: Inspect the control names on the affected applets, and adapt the script to use these control names.


b. Calling .SetProperty("BgColor", "f0f0f0") fails.

Solution: The color string must start with a hash sign: "#f0f0f0".


c. Calling .SetProperty("BgColor", ...) fails for read-only controls.

Solution: The script can call .SetProperty("ReadOnly", "FALSE") before setting the background color. While this makes the control writeable, the underlying BC field remains read-only, and thus typing in other values has no permanent effect.


Additional keywords: Name5, Account2, Revenue2, City2, HTML color name, BackColor, sequential numbering, continuous numbering, ClientBusinessService


Show Related Information Related


Products
  • Siebel > Customer Relationship Management > CRM - Enterprise Edition > Siebel Tools
Keywords
GETPROPERTY; SEQUENTIAL NUMBERING; SETPROPERTY; BUSINESS SERVICES; READONLY; BACKGROUND COLOR; GAP; READ-ONLY

Back to topBack to top

No comments: