Table of Contents |
---|
| outlinh1. true |
---|
| outlinh1. true |
---|
1 | printablefalse |
---|
2 | stylh1. none |
---|
3 | indent20px |
---|
|
Starting a job chain from within a running job chain and handing over parameters programmatically can be effected with the following steps.
1. create a job CallJobchain
Code Block |
---|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
Display feature availability |
---|
|
The start of additional job chains can be configured within the current job chain configuration, see How to configure workflow control by return code handling. The below information is intended for users who want to apply scripting for an individual solution.
Create a job CallJobChain
Code Block |
---|
language | xml |
---|
title | configuration of the CallJobChain job |
---|
collapse | true |
---|
|
<job order="yes">
|
Code Block |
---|
<job order="yes"
stop_on_error="no"
enabled="yes"
name="CallJobchain">
<settings>
<log_level><![CDATA[debug9]]></log_level>
</settings>
<params/>
<script language="javascript">
<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>
|
2. create s sync job using job wizzard
Code Block |
---|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
Create a synchronization job with the name sync
Code Block |
---|
language | xml |
---|
title | Configuration of the sync job |
---|
collapse | true |
---|
|
Code Block |
---|
<job title="Synchronize Job Chains"
order="yes"
tasks="1"
enabled="yes"
name="Sync">
<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 |
---|
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
xml | title | Configuration of the job chain JobchainSampleChainNext |
---|
collapse | true |
---|
|
<job_chain>
|
Code Block |
---|
<job_chain orders_recoverable="yes"
visible="yes"
name="JobchainSampleChainNext">
<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>
|
...
Create a job chain sampleNestedJobChain
sampleNestedJobchain. One node is assigned to CallJobchain CallJobChain. This This node sets the parameter execute_jobchain= to the value JobchainSampleChainNext
. The sync synchronization job is the succesor of this node.
Code Block |
---|
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
xml | title | Configuration of the job chain sampleNestedJobChain |
---|
collapse | true |
---|
|
<job_chain> |
Code Block |
---|
<job_chain orders_recoverable="yes"
visible="yes"
name="sampleNestedChain">
<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="CallJobchainCallJobChain"
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>
|