Parm no JCL

Outubro 20, 2008

Quando executamos uma programa batch via um JCL, muitas, se não a maioria das vezes, necessitamos utilizar parâmetros. Existem as seguintes opções de parâmetros utilizadas:

  • 1 parâmetro que é redefinido dentro do programa:
    01 #PARM (A2)
    01 REDEFINE #PARM
    02 #P1 (A1)
    02 #P2 (A2)

    Exemplo no JCL:

    MEUPROG AB (em que 'A' seria entendido como #P1 e 'B' como #P2)
  • 1 parâmetro como grupo, com “sub-parâmetros” que são informados separadamente:
    01 #PARM
    02 #P1 (A1)
    02 #P2 (A2)

    Exemplo no JCL:

    MEUPROG A B (em que 'A' seria entendido como #P1 e 'B' como #P2)

A segunda utilização é comum para parâmetros com tamanho indefinido, ou seja, reservamos um espaço de 40 caracteres, mas passível de ser informado somente 6, por exemplo, sendo os últimos completados com espaços como um parâmetro #NOME com ‘DANIEL’.

Mas há possibilidaddes de utilizarmos a primeira alternativa mesmo com espaços sem que o programa entenda, ou o JCL informe co programa, que são 2 parâmetros ou mais quando na verdade informo somente 1. Podemos passar o parâmetro na mesma linha ou nas linhas subseqüentes. Se passarmos na mesma linha, isso será interpretado que cada espaço define o término de um parâmetro; se colocarmos um em cada linha, a quebra de linha é que será interpretada como término de parâmetro. Vamos a um exemplo:

Meu programa vai receber um parâmetro que será quebrado, por algum motivo, em 4 variáveis:

  1. Opção
  2. Nome
  3. Setor
  4. Ano

A ‘Opção’ é um numérico de 1 posição que será usada para definir algo lá dentro do programa; o ‘Nome’ é um alfanumérico de 30 posições que pode conter espaços no final; ‘Setor’ é um alfanumérico de 10 posições que também pode conter espaços no final; ‘Ano’ tem tamanho fixo de 4 posições e é numérico.

Se executarmos o JCL da seguinte maneira

MEUPROG1 9DANIEL                        TI-DEV    2008

haverá interpretação de 3 parâmetros: 9DANIEL,TI-DEV e 2008.

Mas se executarmos da seguinte maneira

MEUPROG1
9DANIEL                        TI-DEV    2008

haverá interpretação de um só parâmetro.

É isso. Espero que isso ajude alguém neste mundo misterioso dos jobs!

Abraço!