If you have not already used script libraries, do take a look. The reduced coding implies lesser mistakes, debugging time and easier maintenance! The simple demo below illustrates the usage.
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?