AFTER Parameter

Parameter Type

Keyword, optional

Purpose

Use the AFTER parameter to specify a single job name that must end before the job is selected for execution.

For example, DEPENDENT_JOB SCHEDULE AFTER=PARENT_JOB means PARENT_JOB → DEPENDENT_JOB.

When a dependent job with an AFTER= is processed:
  • If the parent (AFTER=) job exists and is pre-execution or is executing, the dependent job is not eligible to execute.
  • If the parent (AFTER=) job exists and is post-execution, it is assumed to have completed. The dependent job is eligible to execute.
  • If the parent (AFTER=) job does not currently exist, there are two ways this can be interpreted:
    • If AFTER= was specified, the parent (AFTER=) job is assumed to have already executed and is purged from the system. The dependent job is eligible to execute.
    • If AFTER= and DELAY=YES were specified, the parent (AFTER=) job is assumed to have not been submitted yet. The dependent job is not eligible to execute.

If the dependent job can potentially convert and run before the parent (AFTER=) job enters the system, you might want to add a HOLDUNTL= on the dependent job with enough of a time delta to allow the parent job to exist in the system. This avoids 'false positives' where the dependent job thinks the parent job finished and exited the system when in reality it did not process yet. Also, see the AFTER= processing information above. In some cases, HOLDUNTL= might not be necessary depending on how the lack of a parent job is interpreted.

Tip:

To eliminate any conversion variability, you might want to add a HOLDUNTL= delta to all jobs in the job sequence.

Only one AFTER= can be specified per job. AFTER= cannot be specified with JOBGROUP=.

SCHEDULE BEFORE=, AFTER=, and DELAY=YES are used together to create dynamic job sequences. See Dynamic job sequencing (SCHEDULE BEFORE=/AFTER=/DELAY=YES) for more information.