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

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