in regards to your answer consider:
1. no TypeA job is currently running
2. TypeB job should be able to run, the job wont run as no typeA job has run and created a pre condition.
lets take an example
1. job1 job11 is from TypeA
2. job2 job22 is from TypeB
- job1 has started executing
- job2 should be able to start when job1 has ended (both Ok and NotOk)
- job1 and job11 has started executing
- job2 can only start when both job1 and job11 ended (Ok/NotOk)
- job2 has started executing
- job1 can also start executing
- job2 finished executing
- job22 can only start once job1 has ended ( Ok/notOk)
Ok, in your scenario, the job hierarchy would be like this.
In this job 1 can execute any time. So define it as you want to run it, (give time/ cyclic,etc without any condition)
For Job11 you want it to run after 1 completed either successfully or fail.( Add conditions in step tab of 1 as : On stat=* Code = NOTOK ; Do condition name =1 ended, date = odat, sign +. add same if code is Ok.)
For job 2, job can start when job 1 and 11 ended ,should start when job 1 ended. So add 'In condition = 1ended". Same for job22.
You can check the pre req. conditions in Tools-> Pre req conditions.
Hope this will be helpful.
teaser.jpg 25.3 K
Repeating my post from a LinkedIn Group for general consumption:
In order to get a completely flexible solution, you have to do a bit of scripting. For distributed platforms, here is what I would suggest.
Use Pre/Post scripts as follows:
All TypeA jobs have a pre and post script. TypeB jobs have an IN Condition like "TypeA_Not_Running"
When A TypeA job starts, the pre script starts:
1) Delete TypeA_Not_Running (If neatness counts, evaluate TypeACount and do the delete only if zero)
3) Increment TypeACount
When a TypeA job completes, the Post Script:
If zero, add TypeA_Not_Running
When TypeA_Not_Running exists, TypeB jobs start.