Skip to main content
  1. Posts/

Siebel Script Libraries

·2 mins

Siebel 8 (or ST engine to be more specific) has a elegant way of calling business service methods. Script libraries provide the ability to call functions on a business service directly, no more is the need for building property sets and setting the parameters!

If you have not already used Siebel script libraries, do take a look. The reduced coding implies lesser mistakes, debugging time and easier maintenance! The simple demo below illustrates the usage. The examples are in Siebel eScript, and need to be tuned for use in Siebel VB.

Step 1 #

Create the target business service ‘COG Test Script Lib’. A custom function ‘Echo’ is defined here.

Service_PreInvokeMethod:

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
  return (CancelOperation);
}

Echo:

function Echo (MyString) {
  return "Echoed: " + MyString;
}

Step 2 #

Create the caller service ‘COG Test Script Lib Call’. There is only one method here - ‘Service_PreInvokeMethod’, and the following code has to be input:

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
  var bsTest = TheApplication().GetService("COG Test Script Lib");
  Outputs.SetProperty("Output", bsTest.Echo("abc"));
  bsTest = null;
  return (CancelOperation);
}

Compare this to the approach in earlier versions. In most probability you will be coding something like:

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
  var bsTest = TheApplication().GetService("COG Test Script Lib");
  var psIn = TheApplication().NewPropertySet();
  var psOut = TheApplication().NewPropertySet();
  psIn.SetProperty("MyString", "abc");
  bsTest.InvokeMethod(psIn, psOut);
  Outputs.SetProperty("Output", psOut.GetProperty("ReturnString"));

  psOut = null;
  psIn = null;
  bsTest = null;

  return (CancelOperation);
}

And, don’t forget to add a line or two in the target service ‘COG Test Script Lib’ to set required properties in the output propertyset. Now, a simple ‘bsTest.Echo(“abc”)’ does the job. Isn’t life simpler?