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
- How to create global variables
- How to merge global variables into job and order parameters
- Variable_set - (JobScheduler API Reference Handbook)