Versions Compared

Key

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

...

Starting a job chain from within a running job chain and handing over parameters programmatically can be effected with the following steps.

 

Version: This feature is only available in JobScheduler version

Display feature availability
StartingFromRelease
1.7
.4 onwards.

Create a job CallJobChain

Code Block
languagexml
titleconfiguration of the CallJobChain job
collapsetrue
 <job order="yes">
    <params/>
    <script language="javax.script:ecmascript"><![CDATA[
 function spooler_process() {
   var thisOrder = spooler_task.order();
   var order = spooler.create_order();
   var execute_jobchain = thisOrder.params().value("execute_jobchain");
   order.id = thisOrder.id + "_next" ;
   order.params().merge(thisOrder.params);
   spooler.job_chain( execute_jobchain ).add_order( order );
   return true;
 } 
    ]]></script>
    <run_time/>
 </job>

Create a synchronization job with the name sync

...

Code Block
languagexml
titleConfiguration of the sync job
collapsetrue
 <job title="Synchronize Job Chains"
     order="yes">
    <description>
        <include file="jobs/JobSchedulerSynchronizeJobChains.xml"/>
    </description>
    <params/>
    <script language="java"
            java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains"
            java_class_path=""/>
    <run_time/>
 </job>

Create a job chain JobchainSampleChainNext with some nodes and add a node with a synchronization job

Code Block
languagexml
titleConfiguration of the job chain JobchainSampleChainNext
collapsetrue
 <job_chain>
    <job_chain_node state="100"
                    job="job_sample_4"
                    next_state="sync"
                    error_state="error"/>
    <job_chain_node state="sync"
                    job="Sync"
                    next_state="success"
                    error_state="error"/>
    <job_chain_node state="success"/>
    <job_chain_node state="error"/>
 </job_chain>

...

One node is assigned to CallJobChain. This node sets the parameter execute_jobchain to the value JobchainSampleChainNext. The synchronization job is the succesor of this node.

Code Block
languagexml
titleConfiguration of the job chain sampleNestedJobChain
collapsetrue
 <job_chain>
    <job_chain_node state="100"
                    job="job_sample_1"
                    next_state="200"
                    error_state="error"/>
    <job_chain_node state="200"
                    job="job_sample_2"
                    next_state="callNext"
                    error_state="error"/>
    <job_chain_node state="callNext"
                    job="CallJobChain"
                    next_state="sync"
                    error_state="error"/>
    <job_chain_node state="sync"
                    job="Sync"
                    next_state="300"
                    error_state="error"/>
    <job_chain_node state="300"
                    job="job_sample_3"
                    next_state="success"
                    error_state="error"/>
    <job_chain_node state="success"/>
    <job_chain_node state="error"/>
 </job_chain>