Can I know what you mean to say by "jobA Type job is NOT running"? Does it mean Job TypeA has ended execution (either Ok orNotOk)?
If it is so, then this is regarding "Pre conditions". You have to add all type A job's "out conditions" to the Type B jobs as "in conditions".
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
i just gave an example.
lets take another example
there are 1000 TypeA jobs and 500 TypeB jobs.
there is no dependency between the jobs . the only rule is
TypeB job cannot start running if typeA job is executing.
Still we have to give dependency between tables, Group All jobs of type A in Table A, and all jobs of type B in table B, and create dependency between tables.
There is a rule, means there must be a condition, and we can achieve it by d same.
If anything else, I realy need to search
not all TypeA jobs can be in the same table same for TypeB jobs. some are in smart tables, some are not related to each other.
so grouping all TypeA jobs into a table and TypeB jobs into another table is not possible.
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.