...
Flowchart |
---|
# order_A [shape="ellipse",label="Order A\n start time: Friday 08:00 ",fillcolor="violet"] # order_B [shape="ellipse",label="Order B\n start time: Friday 07:00 ",fillcolor="violet"] # order_Z [shape="ellipse",label="Order Z\n start time: Friday 15:00 ",fillcolor="violet"] job_chain_1 [label="Job Chain 1\nhas no relevant dependencies",fillcolor="orange"] job_chain_2 [label="Job Chain 2\nis started by Job Chain 1",fillcolor="violet"] job_chain_3 [label="Job Chain 3\nis started by Job Chain 1",fillcolor="lightskyblue"] job_chain_4 [label="Job Chain 4\nis started by Job Chain 1",fillcolor="aquamarine"] job_chain_5 [label="Job Chain 5\nis started by Job Chain 1",fillcolor="orangered"] job_chain_6 [label="Job Chain 6\nis started by Job Chain 4",fillcolor="yellow"] split1 [label="Split 1", fillcolor="orange"] job1 [label="Job 1", fillcolor="orange"] job2 [label="Job 2", fillcolor="orange"] sync1 [label="Sync 1", fillcolor="orange"] job1_2 [label="Job 1.2", fillcolor="orange"] job3 [label="Job 3", fillcolor="violet"] job4 [label="Job 4", fillcolor="violet"] job5 [label="Job 5", fillcolor="lightskyblue"] job6 [label="Job 6", fillcolor="lightskyblue"] job7 [label="Job 7", fillcolor="aquamarine"] job8 [label="Job 8", fillcolor="aquamarine"] job9 [label="Job 9", fillcolor="aquamarine"] job10 [label="Job 10", fillcolor="orangered"] job11 [label="Job 11", fillcolor="orangered"] job12 [label="Job 12", fillcolor="orangered"] job13 [label="Job 13", fillcolor="yellow"] job_chain_1 -> split1 split1 -> job1 -> sync1 split1 -> job2 -> sync1 sync1 -> job1_2 job1 -> job_chain_2 -> job3 -> job4 job2 -> job_chain_3 -> job5 -> job6 job1_2 -> job_chain_4 -> job7 -> job8 -> job9 job1_2 -> job_chain_5 -> job10 -> job11 -> job12 job9 -> job_chain_6 -> job13 #job12 job8 -> job4 # job11 -> job4 # job11 -> job6job_chain_6 [arrowhead="normal", color="lightslategrey"] job4 -> job8 [arrowhead="normal", color="lightslategrey"] job4 -> job11 [arrowhead="normal", color="lightslategrey"] job6 -> job11 [arrowhead="normal", color="lightslategrey"] job13job12 -> job12 [arrowhead="normal", color="lightslategrey"] |
...
- The solution contains six job chains:
JobChain1
runsJob1
andJob2
in parallel.- On successful completion of
Job1
thenJobChain2
is run - On successful completion of
Job2
thenJobChain3
is run
- On successful completion of
JobChain2
runsJob3
andJob4
JobChain3
runsJob5
andJob6
JobChain4
runs after successful completion ofJobChain1
JobChain4
runsJob7
,Job8
,Job9
Job7
runs 1stJob8
runs onceJob7
andJob4
have run successfully
JobChain5
runs after successful completion ofJobChain1
JobChain5
runsJob10
,Job11
andJob12
Job10
runs 1stJob11
runs onceJob10
,Job4
andJob6
have run successfullyJob12
runs onceJob11
has completed successfully
JobChain6
runs onceJob9
andJob12
have completed successfully
Usage
- Positive Check
- Add an order to
job_chain_A
using JOC'sAdd Order
context menu.- The order should pass through the job chain without errors.
- Add an order to
job_chain_B
using JOC'sAdd Order
context menu.- The order should also pass through the job chain without errors.
- Add an order to
job_chain_Z
using JOC'sAdd Order
context menu.- The order should pass through the job chain without errors as all pre-conditions are met.
- Add an order to
- Negative Check
- Modify the job
do_something_job_chain_A
to include an error, e.g. by adding the commandexit 1
as the final line in the job script. - Add an order to
job_chain_A
:- The order should proceed with an error.
- Add an order to
job_chain_Z
- The order should proceed with an error that is visible in the order log. This error will state that the predecessor job did not complete successfully.
- The order will be set back and will be repeated according to the setback intervals that have been specified for the job
check_predecessor_job_chain_Z
.
- Removing the modification to job
do_something_job_chain_A
and adding an order tojob_chain_A
that then runs successfully should result in a successful run ofjob_chain_Z
- either by a new order added tojob_chain_Z
or by the next execution of the previous order that has been set back.
- Modify the job
...