2.1 -Padrão, regras e "frescuras" do JCL

Retomando o JOB00000

12345678901234567890123456789012345678901234567890123456789012345678901234567890
//JOB00000 JOB 'EXECUTA HELLO WORLD',                                   1
//             NOTIFY=&SYSUID,MSGCLASS=H                                2
//* Esse Job executa o programa cobol HELLO0000                         3
//EXECUTA  EXEC PGM=HELLO000          *** COMENTARIO DIDATICO ***       4
//SYSOUT   DD SYSOUT=A,HOLD=YES                                         5
//                                                                      6

Para o job acima e a grande maioria deles temos o seguinte padrao :

//Nome Operacao operando/parametros Comentarios

Colunas 3-10 -> Nome do cartao 12-15 -> Tipo de operação 17-71 -> Dados referentes ao tipo de cartao/operando 72 -> Indicador de continuação

Existem outros tipos e exceções, mas no geral é isso ai de cima mesmo.

O limite de dados utilizaveis de cada linha é a coluna 71, da coluna 72 à 80 se existirem dados eles sao desprezados e tratados como comentários. Por razoes historicas o tamanho de tela mais difundido no mainframe foi o 24x80 padrão esse oriundo dos cartoes perfurados utilizados ao longo da historia da Hollerit e da propria IBM.

Nas colunas 1-2 você encontra no JCL: // que indica que existe um "cartão" na sequencia se esse cartão iniciar com * ele é um comentario e é desprezado (existem comandos JES - Job Entry Subsystem, (2 e 3) com o mesmo radical mas discutiremos em momento oportuno). Se possuir um caracter valido diferente de branco ele será um cartão se for branco sera continuação da linha anterior. // seguido de espacos encerra o job.

A denominação cartão é historica e veridica, pois eram cartões de papel e que ao longo dos anos foram substituidos, mas o nome e o padrão continuarão a existir por longos anos.

Cada "cartão" possui basicamente 3 componentes:

Nome - com no maximo 8 caracteres que o identifique com precisao

Operacao - identifica o tipo de cartão (JOB, EXEC e DD)

Parametros/Operandos - dados necessarios para a operacao

E um quarto opcional que são os Comentarios - caso julgue necessario

*Nos caos de operacao de execucao (cartao do tipo EXEC) na medida do possivel utilizar nome unico dentro do mesmo job/procedure, em momento oportuno explicaremos o porque disso, por hora, aceite.

Não há regra para separacao dos componente, fica a criterio do fregues. O espaço minimo entre eles é de 1 branco. Siga o padrao de sua empresa ! Ah, e chama cartao, porque era um cartao mesmo, cada linha era um moço desses aqui de baixo

Primeira linha do cartao JOB do JOB00000

Cartão perfurado acima foi gerado em 2025 01 05 pelo site https://www.masswerk.at/keypunch/

Recaptulando 2 e nova tentativa de nao deixar algo citado sem explicação.

Deu pra notar que o JCL tem estrutura e regras de sintaxe muito rigidas e específicas, vamos dar uma nova visão pra ficar tudo bem claro. Formato da Declaração JCL: Toda linha de comando JCL deve começar com duas barras (//) nas colunas 1 e 2 As informações são escritas entre as colunas 1 e 71, enquanto as colunas 73 a 80 são frequentemente usadas para números de sequência, embora o JES2 as ignore para alguns comandos como o /*OUTPUT. Segue abaixo a estrutura geral de um comando JCL

Campo

Ocorrência no Comando JCL

Identificador

// (sempre nas colunas 1 e 2)

Nome

(Nome específico para o job, step, DD)

Operação

(Indica a operação a ser executada: JOB, EXEC, DD)

Operando

(Complementos do campo de Operação, parâmetros)

Comentários

(Começam um espaço depois do último Operando, ou após //*)

Regras de Continuação:

Quando uma linha de comando JCL excede a coluna 71, ou para maior clareza, você pode continuar na linha de baixo, vulgo, subsequente. Para fazer isso: - A primeira linha deve terminar com uma vírgula (,) - A próxima linha deve começar com duas barras (//) nas colunas 1 e 2 - O parâmetro da linha de continuação deve começar entre a coluna 4 e 16

Comentários no JCL: Existem duas formas principais de incluir comentários -//*: Caracteres //* nas colunas 1, 2 e 3 indicam uma linha de comentário. O texto do comentário pode ir da coluna 4 até a 80. Você pode colocar declarações de comentário em qualquer lugar após a declaração JOB e até mesmo entre continuações de declarações JCL. -/*: Este é um comando delimitador, usado para finalizar uma sessão de entrada de dados (input stream), mas também pode incluir comentários. O JCL é interpretado pelo JES (Job Entry Subsystem), o JES (2 ou 3) gerencia os jobs antes e depois da execução, enquanto o MVS (Multiple Virtual Storage) gerencia os jobs durante a execução.

Last updated