Siebel eScript Language Reference > Siebel eScript Language Overview >

Script Engine Alternatives for Siebel eScript


Starting with Siebel Business Applications release 7.8, there are two versions of the scripting engine available to you. The T eScript engine is the traditional, previously available engine. The ST eScript engine provides enhancements, including strong typing of variables and the Script Assist utility that allows easier script creation.

Except for a few key differences, the ST eScript engine is backward compatible with eScript created with the T eScript engine. In this document, the engines are referred to by name only in contexts requiring differentiation.

CAUTION:  To revert back to the T eScript engine after compiling with the ST eScript engine, you must turn off the ST eScript engine, back out any script you have typed prior to compiling with the ST eScript engine, then recompile with the T eScript engine. You are strongly encouraged to make your decision on an engine prior to allowing any scripting to occur and to clearly communicate the choice and its implications to your entire development team.

For information on implementing either of the eScript engines, see Using Siebel Tools.

Before you make your choice of engines, you should understand how they differ in their treatment of scripting elements.

  • Variable data typing. The ST eScript engine supports strong typing, or assigning a variable's data type when the variable is declared, so that the type-binding occurs at compile time. Both engines support typeless variables, whose binding occurs at run time.

    Typically, strongly typed variables provide improved performance, as compared with their typeless counterparts.

    For more information, see Data Typing in Siebel eScript.

  • Implicit variable type conversion. There are differences in how implicit type conversions are performed with strongly typed variables versus how they are performed with typeless variables. Implicit conversions happen in mixed type contexts, such as when a string variable is assigned the value of a numerical variable.

    For more information, see Implicit Type Conversion in Siebel eScript.

  • Methods. The engines restrict the parameters passed with the global.setArrayLength() method differently.

    For more information, see setArrayLength() Method.

    NOTE:  If a method (or group of methods) is supported by one engine, and not supported by the other, then the restriction is stated in the documentation for the method (or at a level that covers the group).

  • Properties. The ST eScript engine does not support the following static properties of the RegExp object:
    • RegExp.$n (including '$_' and '$&')
    • RegExp.input
    • RegExp.lastMatch
    • RegExp.lastParen
    • RegExp.leftContext
    • RegExp.rightContext

      Instead, you must modify your script to use equivalent functions on the target object itself.

  • Commands. The ST eScript engine does not support #define or #if, preprocessor alternatives that are used at compile time only. An alternative to using #define is to use a var declaration.

    For example, change

    #define MY_DEFINE "abc"

    to

    var MY_DEFINE = "abc";

For information on Script Assist and how to enable the eScript engine you want to use, see Using Siebel Tools.

Siebel eScript Language Reference