2.10.2 - Exemplo 2

Exemplo2:

Agora vamos supor que sem querer e sem prestar muita atenção durante o copia e cola o JOB00000 ficou assim

//JOB00000 JOB 'EXECUTA HELLO WORLD'
// NOTIFY=&SYSUID 
//JOBLIB DD DSNAME=USER.BUGA.CARGAS,DISP=SHR
//EXECUTA EXEC PGM=HELLO000 
//

Após a submissão foi detectado um ERRO de JCL, mas onde ? Segue a listagem emitida para esse job:

JESMSGLG

18.32.58 JOB05879 ---- WEDNESDAY, MARCH 12, 2014 ----
18.32.58 JOB05879 IRR010I USERID BUGA001 IS ASSIGNED TO THIS JOB.
------ JES2 JOB STATISTICS ------
4 CARDS READ
17 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
1 SYSOUT SPOOL KBYTES
0.00 MINUTES EXECUTION TIME

JESJCL

1 //JOB00000 JOB 'EXECUTA HELLO WORLD'
2 // NOTIFY=&SYSUID
3 //JOBLIB DD DSNAME=USER.BUGA.CARGAS,DISP=SHR
4 //EXECUTA EXEC PGM=HELLO000

JESYSMSG

STMT NO. MESSAGE
2 IEFC605I UNIDENTIFIED OPERATION FIELD

Agora ficou fácil, o erro esta na linha 2 conforme informado no file JESYSMSG que de acordo com o file JESJCL contem

    2 //         NOTIFY=&SYSUID  

ué, mas não vejo erro nessa linha... aqui é o pulo do gato, a linha com erro é a anterior !

//JOB00000 JOB 'EXECUTA HELLO WORLD'

ué, mas também não vejo erro nessa linha !

Procure melhor !

Bom deixa eu explicar, para ter uma linha como a 2 sem nada escrito como nome ou ele é um componente de algo similar a um cartao SYSIN DD * (in-stream) ou é uma continuação da linha anterior, ficou mais claro ?!?

Para ser continuacao da linha anterior essa deve terminar com uma virgula e não com espaço, colocando a virgula no local correto ficamos :

//JOB00000 JOB 'EXECUTA HELLO WORLD',
// NOTIFY=&SYSUID 
//JOBLIB DD DSNAME=USER.BUGA.CARGAS,DISP=SHR
//EXECUTA EXEC PGM=HELLO000 
//

que "roda" sem problemas !

Last updated