Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px
h1. Passing

Accessing parameters

...

in shell

...

scripts

...

  • Job

...

  • and order

...

  • parameters are exposed as environment variables

...

  • to shell scripts.
  • 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.
    • For details see Which environment variables are provided by JobScheduler?

Examples

The following two examples show a task parameter defined in a job <param> tag can be called in a shell script.

Code Block
languagexml
titleExample for Windows showing how a task parameter can be used in a shell script
collapsetrue

Sample

Code Block

 <job>
    <params>
        <param name="param1"  value="Test"/>
    </params>
    <script language="shell">
        <![CDATA[
 rem This is aan sampleexample shell script to demonstrateshow the use of parameters
 echo Param1 has the value %scheduler%SCHEDULER_paramPARAM_param1%PARAM1%
        ]]>
    </script>
    <run_time/>
 </job>

for Linux

Code Block
languagexml
titleExample for Unix showing how a task parameter can be used in a shell script
collapsetrue
Code Block

 <job>
    <params>
        <param name="param1" value="Test"/>
    </params>
    <script language="shell">
        <![CDATA[
 # This is aan sampleexample shell script to demonstrateshow the use of parameters
 echo "Parameter Param1param1 has the value $SCHEDULER_PARAM_PARAM1"
        ]]>
    </script>
    <run_time/>
 </job

If you want to use the parameters as parameters for a script in the command-line just append the Names to the Scriptname:

Code Block

  anyshellscript.sh $SCHEDULER_PARAM_PARAM1 $SCHEDULER_PARAM_PARM2 ...

Setting Parameter in Shell-Scripts and put them to the next node in job chains.

...

Passing parameters to subsequent shell jobs in a job chain

  • JobScheduler allows the creation or overwriting of order parameters for subsequent jobs in a job chain.
  • JobScheduler parses a temporary file for

...

  • name/value

...

  • pairs after termination of each job in a job chain.
    • The name of this temporary file is held in the SCHEDULER_RETURN_VALUES environment variable.
    • The name/value pairs are automatically added as order parameters.
    • A parameter set in one job shell script can be written to this temporary file and made available to subsequent jobs using the following (for Windows):
      • myParam=myValue >> %SCHEDULER_RETURN_VALUES%
    • A task parameter set in one job can be written to this temporary file and thereby made available to subsequent jobs in a job chain using the following (for Windows):
      • myParam=%SCHEDULER_PARAM_MYPARAM% >> %SCHEDULER_RETURN_VALUES%
    • Such parameters are accessible in subsequent job using the following (for Windows):
      • echo myParam = %SCHEDULER_PARAM_MYPARAM%

The following code blocks show two jobs that demonstrate the setting and retrieval of shell script parameters in a job chain:

Code Block
languagexml
titleExample First Job

First Job

Code Block

 <job order="yes"
     stop_on_error="no" name="job1_shell_with_parameter_set">
    <params>
        <param name="param1" value="Value1-Job1" />
        <param name="param2" value="TestValue2-Job1" />
    </params>
    <script language="shell">
        <![CDATA[
 rem This is a sample shell script to demonstrate the usesetting of parameters 
echo param1 = %SCHEDULER_PARAM_PARAM1%
echo param2 newParam=a sample value >> %scheduler_return_values%= %SCHEDULER_PARAM_PARAM2% 
 
rem creating order parameters for subsequent jobs
echo param2 = some-other-value >> %SCHEDULER_RETURN_VALUES%
echo param3 = Value3 >> %SCHEDULER_RETURN_VALUES%
        ]]>
    </script>
    <run_time/>
 </job>
Code Block
languagexml
titleExample Second Job

...

code

 <job order="yes"
     stop_on_error="no" name="job2_shell_with_parameter_get">
    <params>
        <param name="param1" value="Test"Value1-Job2" />
        <param name="param2" value="Value2-Job2" />
    </params>
    <script language="shell">
        <![CDATA[
echo param1 has the value: %SCHEDULER_PARAM_PARAM1%
echo newParam param2 has the value: %SCHEDULER_PARAM_PARAM2%
echo param3 has the value: %scheduler%SCHEDULER_paramPARAM_newParam%PARAM3%
        ]]>
    </script>
    <run_time/>
 </job>

 

The job chain for the two example shell jobs is listed below:

code
Code Block
languagexml
titleExample Job Chain
collapse
true

 <job_chain>
    <job_chain_node state="100"
                    job="job_samplejob1_shell_with_parameter_set"
                    next_state="200"
                    error_state="error"/>
    <job_chain_node state="200"
                    job="job_sample_shelljob2_shell_with_parameter_get"
                    next_state="success"
                    error_state="error"/>
    <job_chain_node state="success"/>
    <job_chain_node state="error"/>
 </job_chain>

Example Behavior

The screen shot below shows the log file for the example order and the values for the environment variables.

Image Added

The log file shows that:

  • The param1 task parameters set in both the first and second jobs are only valid within the respective jobs.
  • The param2 task parameter set in the first job and which is forwarded as an environment variable to the second job overwrites the param2 task parameter set in the second job.
  • The param3 shell script parameter set in the shell script in the first job is passed to the script in the second job.

Example Download

The example described above can be downloaded from the following linkrelated downloads:

see also:

...

Unpack the files into your JobScheduler's live folder and run the order using JOC.

The example behavior described above will be visible in the order log file.

Further References

Job and Order Parameters