Introduction
Parameters can be set for Jobs and and for Orders.
Job parameters are defined for jobs and are available every time the job is run.
Order parameters are defined for orders and are available to all the jobs in a Job Chain. When the value of an order parameter in a job chain is changed then this new value will be applied at the next start of the order.
Note that when jobs are programmed using the JobScheduler API, job and order parameters are separate objects. Order parameters have priority over - i.e. will overwrite - job parameters of the same name.
Parameters allow a general purpose jobs to be created that are then provided with specific information via the parameters. For example, the file name, current location and target address for a file transfer job could be easily specified using parameters.
Parameters can be used to provide information for either shell jobs - i.e. jobs that run a shell script - or API jobs - i.e. jobs that use the JobScheduler's API Interface. The most widely used API jobs are the JITL - JobScheduler Integrated Template Library jobs that can be included as part of each JobScheduler installation and allow the JobScheduler to carry out a wide range of standard functions.
Article Delimitation
Global Variables
Parameters can be also be set from global variables. This is outside the scope of this article and described in:
Job Chain Node Parameters
Parameters can also be set for job chains and job chain nodes. However these parameters are used differently to job and order parameters and are not described in this article.
For more information about job chain and job chain node parameters see:
Setting Parameters for a Job or an Order in JOE
Parameter elements can be found in JOE - JobScheduler Object Editor, in the Scheduler Elements tree as a sub-elements of every job and order. Each parameter consists of a name and a value.
Setting a Job Parameter
- Select a job in JOE's element tree view
- Select the job's Parameter element as shown in the screenshot below
- Enter a name-value pair in the Name and Value fields as shown in the screenshot below.
- Click the Apply button
- Click the Save Configuration icon (top, left) to permanently save the parameters.
Setting an Order Parameter
Order parameters are set in a similar manner to job parameters, by selecting an order's parameter element (not shown in the screen shot above).
Job and Order Parameters as XML
The next two code blocks show the XML generated by JOE for a typical simple job and for a simple order:
<job order="yes" stop_on_error="no" name="job1"> <params > <param name="param1" value="Value1-Job1"/> <param name="param2" value="Value2-Job1"/> </params> <run_time /> </job>
<order job_chain="shell_with_parameter" id="Order1"> <params > <param name="param1" value="Value1-Order1"/> <param name="param2" value="Value2-Order1"/> </params> <run_time /> </order>
Setting Parameters for an Order in JOC
Order parameters can be set in JOC - JobScheduler Operations Center when an order start is configured.
This is done using the Order menu button as shown in the screenshot below.
The Start order parametrized button opens the Start order shell_with_parameter form as shown in the next screen shot.
This form is used to specify a start time (or immediate start) for the order and any parameters
The submit button will start the order at the time specified in the upper part of the form with the parameter name/value pair shown.
The new param button can be used to add a further name/value pair for the order.
A parameter set here will overwrite a parameter with the same name that has been configured for a job.
Using Parameters in Shell Script Jobs
- Job and order Parameters are exposed to shell scripts as environment variables.
- Environment variables are named using a predefined prefix and the name of the original parameter:
- The default value for the environment variable prefix is SCHEDULER_PARAM_ .
- Environment variable names are provided with uppercase letters.
- For example, a parameter param1 can be accessed by the SCHEDULER_PARAM_PARAM1 environment variable. This syntax applies for both job and order parameters.
For details see Which environment variables are provided by JobScheduler?
Examples for parameters defined for a job
The following two examples show a job parameter defined in a job <param> tag can be used in a shell script. Note that the parameter could have been equally well have been defined in the order.
Examples for parameters defined on job start
The following example shows an XML command to start a job with parameters.
- A parametrized job start can be used programmatically, e.g. by use of the JobScheduler start script.
- Such parametrized job starts can be effected by JOC.
For further information see
Using Parameters in API Jobs
Job and order parameters are exposed to the API as objects.
This is described in detail in:
Further References
Job and Order Parameters
- How to set and read job and order parameters (the current article)
- How to pass parameters to subsequent shell jobs in a job chain
- How to clone parameters from a persistent order
- How to specify parameters using the "on_exit_code" command
- How to access order parameters and job parameters using the JobScheduler API
Parameters and Global Variables
- How to merge global variables into job and order parameters
- How to set job and order parameters by substituting global variables