Você está na página 1de 6

JCL – Cartão EXEC

EXEC
Uma declaração EXEC (figura 1) marca o inicio de um job step.

//NOME DO STEP EXEC PGM=programa ou PROC=procedimento Parâmetros

NOME DO STEP – O nome do step é opcional;

EXEC – A operação é obrigatória;

PGM= - É obrigatória;

PROC= - É opcional quando se referencia um procedimento catalogado;

Parâmetros – Lista de parâmetros, separados por vírgula.

Figura 1 - Forma geral de uma declaração EXEC

Seu propósito é identificar o programa ou procedimento catalogado a ser


executado.

O nome do step é opcional e as regras para sua codificação são as mesmas


para os nomes de job.

O primeiro parâmetro tem que ser um nome de programa ou procedimento.

Por exemplo:

// EXEC PGM=SORT6

ou

// EXEC PROC=COBOL

A palavra-chave PROC pode ser dispensada.

Por exemplo:

// EXEC COBOL

No caso de ser mencionado um programa, é necessário escrever PGM.

Quando é referenciado um procedimento catalogado, o sistema operacional


pesquisa a biblioteca de procedimentos e substitui a declaração EXEC do
programador por um conjunto de declarações pré-codificadas.

Prof. Hiromasa Nagata 1


JCL – Cartão EXEC

A figura 2 mostra o JCL, adicionada ao job stream para substituir

// EXEC FORTRAN

//FORT EXEC PGM=IEYFORT

//SYSPRINT DD parâmetros (saída impressa)

//SYSLIN DD parâmetros (saída do módulo objeto)

//LKED EXEC PGM=IEWL, outros parâmetros

//SYSLIB DD parâmetros (biblioteca do sistema)

//SYSLMOD DD parâmetros (saída do módulo de carga)

//SYSPRINT DD parâmetros (saída impressa)

//SYST1 DD parâmetros (espaço de trabalho)

//SYSLIN DD parâmetros (entrada do módulo objeto)

//GO EXEC PGM=*.LKED.SYSLMD….

Figura 2 – O procedimento catalogado FORTRAN insere declarações de JCL


no job stream

O nome de programa final da declaração EXEC

//GO EXEC PGM=*.LKED.SYSLMD….

parece um tanto confuso. O asterisco (*) é uma referencia retroativa.

Ela diz ao sistema operacional para examinar uma declaração de JCL


anterior. Qual?

Procure o step LKED.

Depois, procure DD no step SYSLMOD. Essa referencia ordena ao sistema


operacional que

“execute o programa criado no job step LKED e que está armazenado no


arquivo SYSLMOD”.

Prof. Hiromasa Nagata 2


JCL – Cartão EXEC

O programador codificou um procedimento catalogado. O procedimento


continha, neste caso, três declarações EXEC, cada uma relativa a um
programa específico. As referencias a programas específicos contêm a
palavra-chave PGM.

Com freqüência, o nome do programa ou do procedimento catalogado é


único parâmetro incluído numa declaração EXEC. Entretanto, existem outros
parâmetros EXEC.

Parâmetro COND

Quando você submeter um job contendo erros de compilação, o resultado


habitualmente é um relatório com uma mensagem que indica que as etapas
de link-execução e execução não foram executadas.

Isso faz sentido – por que se preocupar com os steps subseqüentes se o


primeiro estava errado?

Mas, como o sistema operacional sabe que os dois últimos steps deveriam
ser dispensados?

Por exemplo, quando é realizada uma compilação, ele retorna um código de


severidade (severity code) ao se executar um programa.

Se esse programa tiver erros graves certamente não será executado.

O compilador informa ao sistema o mais alto código de severidade colocando


o código de condição num registrador.

O sistema operacional pode verificar este código antes de carregar e executar


um job step, omitindo o step se o código de condição não for aceitável.

Os valores dos códigos são descritos a seguir:

a) Advertências (warning) valem 4 pontos;


b) Os erros simples valem 8 pontos;

c) Os erros graves valem 12 pontos.

O programador ajusta os limites dessa comparação mediante o emprego do


parâmetro COND (condição) (figura 3). Por exemplo:

COND=(12,LE,FORT)

Prof. Hiromasa Nagata 3


JCL – Cartão EXEC

Diz que se 12 for menor ou igual ao código de condição retornado pelo job
step FORT, o step não será executado.

Vamos examinar isso outra vez. Veja o parâmetro COND que aparece na
seguinte declaração EXEC:

//LKED EXEC PGM=IEW,COND=(12,LE,FORT)

O step LKED será ignorado se 12 for menor ou igual ao código de condição


real retornado pelo job step FORT. A lógica é pouco habitual e, portando,
tenha cautela.

Na comparação entre uma variável e uma constante, muitos programadores


codificam primeiramente a variável. No parâmetro COND a constante é
escrita em primeiro lugar, fazendo com que a lógica pareça estar invertida. O
fato de que a igualdade leva a uma decisão negativa, omitindo um step,
aumenta a confusão.

A forma mais segura de lidar com a lógica do parâmetro COND é lê-lo como
está escrito, da esquerda para a direita.O step será omitido se determinada
constante encontrar uma certa condição relativa ao código de condição
retornado por um job step anterior.

O terceiro subparâmetro posicional (o nome do job step anterior) pode se


omitido. Se o nome do step não for mencionado, o sistema entenderá que se
trata do último job step que tenha sido completado.

As comparações validas constam da figura 3.

COND = valor,teste,nome do step


valor = diferente de valor numérico a ser comparado ao código de
conclusão retornado por um step anterior;
teste =
GT – maior que
EQ – igual a
LT – menor que
GE – menor que ou igual a
LE – menor que ou igual a
nome do step -= nome de um step anterior, cujo código de
conclusão, deve ser testado. Quando não
incluído, o sistema considera o step
imediatamente anterior.
Prof. Hiromasa Nagata 4
JCL – Cartão EXEC

Figura 3 – O parâmetro COND permite que o programador especifique


condições de execução sob as quais um job step deverá ser omitido.

No procedimento catalogado FORTRAN (figura 2), os parâmetros COND estão


colocados normalmente na declaração EXEC, tanto para o step de link-ediçao
como para o de execução (GO).

Por exemplo, a declaração

//LKED EXEC PGM=IEWL,COND=(8,LE,FORT)

Ordena ao sistema operacional que omita o step LKED se 8 for menor ou


igual ao código de condição retornado pelo job step FORT.

Podemos incluir múltiplas condições num único parâmetro COND; por


exemplo,

COND =((8,LE,FORT),(4,LT,LKDE))

significa que este step deve ser omitido se 8 for menor ou igual ao código de
condição retornado por FORT, ou se 4 for menor que o código de condição
retornado por LKED. Observe os parênteses.

Prof. Hiromasa Nagata 5


JCL – Cartão EXEC

Questionário

1) A declaração EXEC marca o que em um job?

2) Qual deve ser o primeiro parâmetro no cartão EXEC?

3) No cartão EXEC, devemos codificar a palavra PGM quando?

4) Qual o significado da palavra PROC dentro do cartão EXEC?

5) Para que serve o parâmetro COND do cartão EXEC?

6) Codifique uma declaração EXEC, referenciando o procedimento catalogado


COBOL. Omita esse step se STEP1 retornar um código de condição igual a
100.

Prof. Hiromasa Nagata 6

Você também pode gostar