JCL - Declaração EXEC

Cada JCL pode ser composto de várias etapas de trabalho. Cada etapa do trabalho pode executar um programa diretamente ou pode chamar um procedimento, que por sua vez executa um ou mais programas (etapas do trabalho). A declaração, que contém as informações do programa / procedimento da etapa do trabalho é oEXEC statement.

O objetivo da instrução EXEC é fornecer as informações necessárias para o programa / procedimento executado na etapa do trabalho. Os parâmetros codificados nesta instrução podem passar dados para o programa em execução, podem substituir certos parâmetros da instrução JOB e podem passar parâmetros para o procedimento se a instrução EXEC chamar um procedimento em vez de executar diretamente um programa.

Sintaxe

A seguir está a sintaxe básica de uma instrução JCL EXEC:

//Step-name EXEC Positional-param, Keyword-param

Descrição

Vamos ver a descrição dos termos usados ​​na sintaxe da instrução EXEC acima.

STEP-NAME

Isso identifica a etapa do trabalho no JCL. Pode ter comprimento de 1 a 8 com caracteres alfanuméricos.

EXEC

Esta é a palavra-chave para identificá-la como uma instrução EXEC.

POSICIONAL-PARAM

Esses são parâmetros posicionais, que podem ser de dois tipos:

Parâmetro Posicional Descrição
PGM Isso se refere ao nome do programa a ser executado na etapa de trabalho.
PROC Refere-se ao nome do procedimento a ser executado na etapa do trabalho. Vamos discutir isso em um capítulo separado.

KEYWORD-PARAM

A seguir estão os vários parâmetros de palavra-chave para a instrução EXEC. Você pode usar um ou mais parâmetros com base nos requisitos e eles são separados por vírgula:

Parâmetro de palavra-chave Descrição
PARM

Usado para fornecer dados parametrizados ao programa que está sendo executado na etapa do trabalho. Este é um campo dependente do programa e não possui regras definidas, exceto que o valor PARM deve ser incluído entre aspas no caso de ter caracteres especiais.

Por exemplo, dado abaixo, o valor "CUST1000" é passado como um valor alfanumérico para o programa. Se o programa estiver em COBOL, o valor passado por um parâmetro PARM em uma JCL é recebido na LINKAGE SECTION do programa.

ADDRSPC

Isso é usado para especificar se a etapa do trabalho requer armazenamento virtual ou real para execução. O armazenamento virtual é paginável, ao passo que o armazenamento real não é e é colocado na memória principal para execução. As etapas do trabalho, que exigem uma execução mais rápida, podem ser colocadas no armazenamento real. A seguir está a sintaxe:

ADDRSPC=VIRT | REAL

Quando um ADDRSPC não está codificado, VIRT é o padrão.

ACCT

Isso especifica as informações de contabilidade da etapa do trabalho. A seguir está a sintaxe:

ACCT=(userid)

Isso é semelhante ao parâmetro posicional accounting informationna instrução JOB. Se estiver codificado na instrução JOB e EXEC, as informações de contabilidade na instrução JOB se aplicam a todas as etapas do trabalho em que um parâmetro ACCT não está codificado. O parâmetro ACCT em uma instrução EXEC substituirá aquele presente na instrução JOB apenas para aquela etapa do trabalho.

Parâmetros de palavra-chave comuns de instrução EXEC e JOB

Parâmetro de palavra-chave Descrição
ADDRSPC ADDRSPC codificado na instrução JOB substitui o ADDRSPC codificado na instrução EXEC de qualquer etapa do trabalho.
TIME Se TIME estiver codificado em uma instrução EXEC, ela se aplicará apenas àquela etapa do trabalho. Se for especificado nas instruções JOB e EXEC, ambas entrarão em vigor e poderão causar erro de tempo limite devido a qualquer uma delas. Não é recomendado usar o parâmetro TIME nas instruções JOB e EXEC juntas.
REGION

Se REGION estiver codificado em uma instrução EXEC, ela se aplicará apenas àquela etapa do trabalho.

REGION codificada na instrução JOB substitui a REGION codificada na instrução EXEC de qualquer etapa do trabalho.

COND

Usado para controlar a execução da etapa do trabalho com base no código de retorno da etapa anterior.

Se um parâmetro COND for codificado em uma instrução EXEC de uma etapa do trabalho, o parâmetro COND da instrução JOB (se houver) será ignorado. Os vários testes que podem ser realizados usando um parâmetro COND são explicados em Processamento condicional.

Exemplo

A seguir está um exemplo simples de script JCL junto com as instruções JOB e EXEC:

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440