Global Variables

Job and order parameters can be set using global variables. A simple example would be:

 <param name="BookingDate" value="\$ODAT">

where the global variable $ODAT represents a date and has been set as described in the How to create global variables page. Substituting a job parameter or order parameter in this way would allow, for example, a booking date to be set for a financial transaction although the transaction is actually processed at a later time.

The following is a more complex example showing the substitution of global variables in a job:

function spooler_task_before() {
    var paramNames = spooler_task.params().names().split( ";" );
    for( var i in paramNames ) {
        substituteParams( paramNames[i] );  
    }
    return true;
}
function substituteParams( paramName ) {
    var paramValue = spooler_task.params().value( paramName );
    if(paramValue.search(/\$/) > -1) {
        var schedulerParamNames = spooler.variables().names().split( ";" );
        for( var i in schedulerParamNames )  {
            if(paramValue.search(/\$/) == -1) {
                break;
            }
            var schedulerParamValue = spooler.variables().value( schedulerParamNames[i] );
            spooler_log.info( "Substitute: " + paramName + "=" + paramValue + " with " + schedulerParamNames[i] + "=" + schedulerParamValue );
            var pattern = new RegExp( "\\$\\{?" + schedulerParamNames[i] + "\\}?", "ig" );
            paramValue = paramValue.replace( pattern, schedulerParamValue );
            spooler_log.info( "new value of " + paramName + "=" + paramValue );
        }
        spooler_task.params().value( paramName ) = paramValue;
    }
}

Substitution of global variables in an order can be carried out in a similar manner.

See also