Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

11/04/2015

Criando um Programa Cobol pelo TSO - Mainframe


Este post explica como criar e compilar um programa COBOL no TSO.

Introdução

Primeiro de tudo, você deve entender como um programa COBOL é compilado. Nós temos uma fonte, rodamos um job que copila e dai temos um objeto ou executável. Uma vez que o programa objeto, podemos executar ele que mostrara um resultado obtido.

Então, primeiro, temos uma biblioteca onde ele será o nosso arquivo de origem, editar um membro onde a linguagem de programação COBOL. Esta biblioteca é definido como qualquer JCL biblioteca, ou seja, particionado e com bloco fixo de 80.

Em segundo lugar, precisamos de ter uma biblioteca onde, uma vez compilado, deixe o programa executável ou objeto resultado da nossa programação. Esta biblioteca, que contém um objeto, NÃO deve ser definido como bloco fixo de 80, mas como U ou indefinido (undefined). Isto é muito importante por causa da não definição da biblioteca, ele não irá funcionar.

E, finalmente, precisamos de um JCL para chamar as ferramentas de compilação e montagem, que vai ler o nosso membro de origem COBOL e nos deixar o objeto na biblioteca criada com formato de U, usando as variáveis ​​e parâmetros apropriados.

Criando o programa COBOL (fonte)

Se você não tiver, nós criamos uma biblioteca particionado e com um formato de registro fixo de 80 caracteres. No nosso exemplo, a chamada ADCD.LIB.JCL. Nesta biblioteca, criamos um membro do chamado OLAMUNDO contendo o seguinte programa (OLÁ MUNDO é o clássico):
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUNDO) - 01.05                  Columns 00001 00072
 ****** ***************************** Top of Data ******************************
 000001        IDENTIFICATION DIVISION.
 000002        PROGRAM-ID. HOLAMUN.
 000003        AUTHOR. JAVIER CASTILLA PARA EUSKAL ENCONTER Y MAINFRAMECORNER
 000004        INSTALLATION. IBM-ZOS.
 000005         DATE-WRITTEN. 13 FEBRERO DE 2013.
 000006         DATE-COMPILED.
 000007         SECURITY. NONE.
 000008        ENVIRONMENT DIVISION.
 000009         CONFIGURATION SECTION.
 000010          SOURCE-COMPUTER. MIORDENADOR.
 000011          OBJECT-COMPUTER. MIORDENADOR.
 000012          SPECIAL-NAMES.
 000013            DECIMAL-POINT IS COMMA.
 000014        DATA DIVISION.
 000015        WORKING-STORAGE SECTION.
 000016
 000017        PROCEDURE DIVISION.
 000018        001-MAIN.
 000019
 000020        DISPLAY "OLA MUNDO - RODAMOS UM PROGRAMA COBOL"
 000021        GOBACK.
 ****** **************************** Bottom of Data ****************************
 Command ===>                                                  Scroll ===> PAGE
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel

Criando o objeto de programa

Esta etapa envolve dois pontos: Primeiro, já temos criados a biblioteca de objetos de software com formato de U (não canso de repetir) e em segundo lugar, iniciar o JCL para nos ler o membro cobol fonte, e irá compilar e vai deixar o objeto nos objetos de biblioteca programa.

Criando objetos de biblioteca

É simples: O JCL abaixo vamos pegar o objeto fonte ADCD.LIB.JCL(OLAMUNDO) e vamos gravar o objeto na ADCD.Z110.VTAMLIB(OLAMUNDO);

Compilando um COBOL

Para compilar o programa usamos o seguinte JCL:
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUND1) - 01.01                  Columns 00001 00072
 Command ===> sub                                              Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //STEP0    EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
 000004 //STEPLIB  DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000005 //* --------------------------------------------------------------
 000006 //* COMPILAR Y LINKEDITAR HOLAMUN (HOLAMUNDO EUSKAL ENC Y MFCORNER)
 000007 //* SYSLIB  ES LA LIB. DE COPYS
 000008 //* SYSIN   ES LA LIB. DE PROGRAMAS FUENTES
 000009 //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES
 000010 //* --------------------------------------------------------------
 000011 //COBOL.SYSIN   DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
 000012 //LKED.SYSLMOD  DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),DISP=SHR
 000013 /*
Os parâmetros em negrito são as que precisam editar ele não deve trabalhar no nosso exemplo:

- COBOL.SYSIN DD é o registro onde irá apontar para o nosso COBOL fonte.

- STEPLIB DD é o registro que irá apontar para a biblioteca de objetos.

- LKED.SYSLMOD guia DD é onde definimos o objeto membro que é criado resultado da compilação.

Uma vez liberado JCL deve terminar Cond.Code 0. Se apenas um outro, tem que olhar para fora para certo se o trabalho tem sido um erro na transcrição do programa e corrigir o programa de origem. Se consultarmos Livreiro ADCD.Z110.VTAMLIB, deve ser um membro criado chamado OLAMUNDO.
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUND1) - 01.01                  Columns 00001 00072
 Command ===> sub                                              Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //STEP0    EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
 000004 //STEPLIB  DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000005 //* --------------------------------------------------------------
 000006 //* COMPILAR Y LINKEDITAR HOLAMUN (HOLAMUNDO EUSKAL ENC Y MFCORNER)
 000007 //* SYSLIB  ES LA LIB. DE COPYS
 000008 //* SYSIN   ES LA LIB. DE PROGRAMAS FUENTES
 000009 //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES
 000010 //* --------------------------------------------------------------
 000011 //COBOL.SYSIN   DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
 000012 //LKED.SYSLMOD  DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),DISP=SHR
 000013 /*
 000014
 000015
 IKJ56250I JOB TSOAD05J(JOB00293) SUBMITTED
 ***
Rodou
 05.47.12 JOB00293 $HASP165 TSOAD05J ENDED AT N1  MAXCC=0 CN(INTERNAL)
 *** 

A execução do programa COBOL

Para executar o programa, basta fazer uma CHAMADA TSO é o membro ao abrigo do programa. No nosso exemplo, o comando seria:
TSO CALL 'ADCD.Z110.VTAMLIB(OLAMUNDO)'
Dando o comando no TSO;
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.LIB.JCL                              Row 00278 of 00481
            Name     Prompt       Size   Created          Changed          ID
 _________ OLAMUND1 *RC=0           23  2008/11/06  2015/11/04 05:32:58  IBMUSER
 _________ OLCUTL                   23  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPMEMO                100  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPPGM                  83  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDORIMLD                 17  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDSE                     21  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTRACF                 16  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTTOOL                305  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROCTEST                  7  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROFILE                 388  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMHP                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMID                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIE                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIG                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIP                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIT                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMJV                 123  2008/11/06  2008/11/06 15:55:48  IBMUSER
 Command ===> tso call 'ADCD.Z110.VTAMLIB(OLAMUNDO)'           Scroll ===> PAGE
  F1=Help    F2=Split   F3=Exit    F5=Rfind   F7=Up      F8=Down    F9=Swap
 F10=Left   F11=Right  F12=Cancel
Resultado
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.LIB.JCL                              Row 00278 of 00481
            Name     Prompt       Size   Created          Changed          ID
 _________ OLAMUND1 *RC=0           23  2008/11/06  2015/11/04 05:32:58  IBMUSER
 _________ OLCUTL                   23  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPMEMO                100  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPPGM                  83  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDORIMLD                 17  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDSE                     21  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTRACF                 16  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTTOOL                305  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROCTEST                  7  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROFILE                 388  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMHP                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMID                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIE                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIG                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIP                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIT                  35  2008/11/06  2008/11/06 15:55:48  IBMUSE
 OLA MUNDO - RODAMOS UM PROGRAMA COBOL
 ***

Vamos rodar um jcl para ver o resultado;
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(COBOL003) - 01.06                  Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //* -------------------------------------------
 000004 //* RODANDO UM COBOL POR JCL
 000005 //* -------------------------------------------
 000006 //STEP10    EXEC PGM=OLAMUNDO
 000007 //STEPLIB   DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000008 //SYSPRINT DD SYSOUT=*
 000009 /*
 000010
 000011
 000012
 000013
 000014
 000015
 000016
 000017
 000018
 000019
Resultado
   Display  Filter  View  Print  Options  Help
 -------------------------------------------------------------------------------
 SDSF OUTPUT DISPLAY TSOAD05J JOB00185  DSID     2 LINE 0       COLUMNS 02- 81
 COMMAND INPUT ===>                                            SCROLL ===> PAGE
********************************* TOP OF DATA **********************************
                         J E S 2  J O B  L O G  --  S Y S T E M  S Y S 1  --  N

09.20.37 JOB00185 ---- WEDNESDAY, 04 NOV 2015 ----
09.20.37 JOB00185  IRR010I  USERID IBMUSER  IS ASSIGNED TO THIS JOB.
09.20.37 JOB00185  ICH70001I IBMUSER  LAST ACCESS AT 09:12:17 ON WEDNESDAY, NOVE
09.20.37 JOB00185  $HASP373 TSOAD05J STARTED - INIT 1    - CLASS A - SYS SYS1
09.20.37 JOB00185  IEF403I TSOAD05J - STARTED - TIME=09.20.37
09.20.38 JOB00185  IEF404I TSOAD05J - ENDED - TIME=09.20.38
09.20.38 JOB00185  $HASP395 TSOAD05J ENDED
------ JES2 JOB STATISTICS ------
  04 NOV 2015 JOB EXECUTION DATE
           22 CARDS READ
           45 SYSOUT PRINT RECORDS
            0 SYSOUT PUNCH RECORDS
            2 SYSOUT SPOOL KBYTES
         0.00 MINUTES EXECUTION TIME
        1 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
          //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
          //* -------------------------------------------
          //* RODANDO UM COBOL POR JCL
          //* -------------------------------------------
          IEFC653I SUBSTITUTION JCL - 1AD40G12,'IBMUSER',NOTIFY=IBMUSER,MSGCLASS
          TIME=(0,7)
        2 //STEP10    EXEC PGM=OLAMUNDO
        3 //STEPLIB   DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
        4 //SYSPRINT DD SYSOUT=*
          /*
        5 //SYSIN     DD *               GENERATED STATEMENT
ICH70001I IBMUSER  LAST ACCESS AT 09:12:17 ON WEDNESDAY, NOVEMBER 4, 2015
IEF236I ALLOC. FOR TSOAD05J STEP10
IEF237I 0A81 ALLOCATED TO STEPLIB
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF237I JES2 ALLOCATED TO SYSOUT
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000103.?         SYSOUT
IEF142I TSOAD05J STEP10 - STEP WAS EXECUTED - COND CODE 0000
IEF285I   ADCD.Z110.VTAMLIB                            KEPT
IEF285I   VOL SER NOS= ZARES1.
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000102.?         SYSOUT
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000101.?         SYSIN
IEF373I STEP/STEP10  /START 2015308.0920
IEF374I STEP/STEP10  /STOP  2015308.0920 CPU    0MIN 00.17SEC SRB    0MIN 00.04S
IEF375I  JOB/TSOAD05J/START 2015308.0920
IEF376I  JOB/TSOAD05J/STOP  2015308.0920 CPU    0MIN 00.17SEC SRB    0MIN 00.04S
OLA MUNDO - RODAMOS UM PROGRAMA COBOL
******************************** BOTTOM OF DATA ********************************
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE
Clique Aqui

17 comentários:

  1. Boa noite. Claudemar, você teria alguma ideia de como teria que ser o job de execução quando o cobol manipula arquivos? Digo, como seria a indicação no JCL de que aquele cobol iria abrir, ler e fechar determinado arquivo dentro do z/os via hercules?

    ResponderEliminar
  2. Vou deixar alguns exemplos de programas cobol:

    http://www.simotime.com/cblqsm01.htm
    http://ibmmainframes.com/jcls/cobol/cob44.html

    Acho que o exemplo seria assim:

    //CONCATEX JOB CLASS=6,NOTIFY=&SYSUID
    //* Example 1:
    //STEP10 EXEC PGM=MYPROG_COBOL
    //IN1 DD DSN=SAMPLE.INPUT1,DISP=SHR
    //OUT1 DD DSN=SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
    // LRECL=50,RECFM=FB
    //SYSIN DD *
    //CUST1 1000
    //CUST2 1001
    /*
    //*
    //* Example 2:
    //STEP20 EXEC PGM=MYPROG_COBOL
    //OUT1 DD DSN=SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
    // LRECL=50,RECFM=FB
    //SYSIN DD DSN=SAMPLE.SYSIN.DATA,DISP=SHR
    //*

    ResponderEliminar
  3. Boa tarde estou tentando rodar uma programa cobol e não estou conseguindo, alguém poderia me ajudar, o JOB de compilação é esse que está no ADCD.Z110.PROCLIB(IGYWCLG)


    //DANIEL JOB 001,DANIEL,MSGCLASS=C,MSGLEVEL=(1,1),
    // CLASS=A,TIME=(1,00)
    //*
    //STEP1 EXEC IGYWCL,LNGPRFX='IGY'
    //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
    //*
    //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA01),DISP=SHR
    //LKED.SYSLMOD DD DSN=DANIEL.COBOL.LINKLIB(AULA01),DISP=SHR
    //*
    //SYSPRINT DD SYSOUT=*
    //SYSOUT DD SYSOUT=*

    ResponderEliminar
    Respostas
    1. Tenta rodar assim pra ver o que acontece:

      //DANIEL JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
      // MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
      //*
      //STEP0 EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
      //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
      //*
      //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA01),DISP=SHR
      //LKED.SYSLMOD DD DSN=DANIEL.COBOL.LINKLIB(AULA01),DISP=SHR
      //*
      //SYSPRINT DD SYSOUT=*
      //SYSOUT DD SYSOUT=*

      Eliminar
    2. Suspeito que sejo algum parâmetro na primeira linha do seu jcl que esta errado, se não der certo o primeiro jcl que coloquei acima rode este abaixo, se rodar dá uma olhada no resultado do job no SDSF;

      //DANIEL JOB 1AD40G12,'IBMUSER',MSGCLASS=Q,
      // CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
      //*
      //STEP1 EXEC IGYWCL,LNGPRFX='IGY'
      //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
      //*
      //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA01),DISP=SHR
      //LKED.SYSLMOD DD DSN=DANIEL.COBOL.LINKLIB(AULA01),DISP=SHR
      //*
      //SYSPRINT DD SYSOUT=*
      //SYSOUT DD SYSOUT=*

      Eliminar
  4. Bom dia, velho nenhum dos dois deu certo, nesse ultimo que vc postou deu erro no JCL Erro.

    STMT NO. MESSAGE
    1 IEFC621I EXPECTED CONTINUATION NOT RECEIVED
    2 IEFC662I INVALID LABEL
    2 IEFC605I UNIDENTIFIED OPERATION FIELD
    3 IEFC001I PROCEDURE IGYWCL WAS EXPANDED USING SYSTEM LIBRARY ADCD.Z110.

    ResponderEliminar
    Respostas
    1. Deu um erro que depois da virgula não recebeu continuação, suspeito que seja na primeira pra segunda linha, coloque CLASS=A abaixo JOB, acredito que seja o posicionamento;

      //DANIEL JOB 1AD40G12,'IBMUSER',MSGCLASS=Q,
      // CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
      //*
      //STEP1 EXEC IGYWCL,LNGPRFX='IGY'
      //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
      //*
      //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA01),DISP=SHR
      //LKED.SYSLMOD DD DSN=DANIEL.COBOL.LINKLIB(AULA01),DISP=SHR
      //*
      //SYSPRINT DD SYSOUT=*
      //SYSOUT DD SYSOUT=*

      Eliminar
  5. Meu velho eu consegui resolver o problema.

    ResponderEliminar
  6. para compilar um programa cobol utiliza assim, foi só olhando na biblioteca da proc que eu consegui.

    00001 //DANIEL JOB 001,DANIEL,MSGCLASS=C,MSGLEVEL=(1,1),
    000002 // CLASS=A,TIME=(1,00)
    000003 //*
    000004 //STEP1 EXEC IGYWCL,LNGPRFX='IGY'
    000005 //STEPLIB DD DSN=ADCD.Z110.PROCLIB(IGYWCL),DISP=SHR
    000006 //*
    000007 //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA01),DISP=SHR
    000008 //LKED.SYSLMOD DD DSN=DANIEL.COBOL.OK(AULA01),DISP=(NEW,CATLG,DELETE),
    000009 // SPACE=(TRK,(10,10,1))
    000010 //*
    000011 //SYSPRINT DD SYSOUT=*
    000012 //SYSOUT DD SYSOUT=*

    ResponderEliminar
  7. Boa tarde estou com um problema no meu JCL
    "IEFC001I PROCEDURE IGYWCL WAS EXPANDED USING SYSTEM LIBRARY ADCD.Z110.PROCLIB"
    O que está acontecendo é que eu não estou conseguindo mais compilar mais nenhum código cobol. Se alguém poder me ajudar eu agradeço.

    ResponderEliminar
  8. Copia e cole mais coisas do job que você rodou pois só esta mensagem não dá para falar que tipo de erro esta dando.

    ResponderEliminar
  9. 000001 //PROG08 JOB 001,DANIEL,MSGCLASS=C,MSGLEVEL=(1,1),
    000002 // CLASS=A,TIME=(1,00)
    000003 //*
    000004 //* PROGRAMA QUE EXECUTA O COBOL ESTA DENTRO DA 'PROCLIB'
    000005 //*
    000006 //STEP1 EXEC IGYWCL,LNGPRFX='IGY'
    000007 //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
    000008 //*
    000009 //COBOL.SYSIN DD DSN=DANIEL.COBOL.SOURCE(AULA08),DISP=SHR
    000010 //LKED.SYSLMOD DD DSN=DANIEL.COBOL.OK(AULA08),DISP=SHR
    000011 //*
    000012 //SYSPRINT DD SYSOUT=*
    000013 //SYSOUT DD SYSOUT=*

    ResponderEliminar
  10. Vai no SDSF e cole o resultado do job que você rodou, o JCL que você colocou não tem nenhum erro;

    ResponderEliminar
  11. Bom dia....

    Por favor, poderiam me ajudar?

    Na compilação estou obtendo este erro:

    00.52.41 JOB00038 CSV003I REQUESTED MODULE IGYCRCTL NOT FOUND

    O modulo IGYCRCTL não é encontrado em
    //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR

    no job
    //IBMUSER JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
    // MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
    //STEP0 EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
    //* STEPLIB DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
    //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
    //* ---------------------------------------------------------------
    //* COMPILAR Y LINKEDITAR HOLAMUN (HOLAMUNDO EUSKAL ENC Y MFCORNER)
    //* SYSLIB ES LA LIB. DE COPYSAMAS FUENTES
    //* SYSIN ES LA LIB. DE PROGRAMAS FUENTES O EJECUTABLES
    //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES---------
    //* --------------------------------------------------------------
    //COBOL.SYSIN DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
    //LKED.SYSLMOD DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),DISP=SHR
    /*

    Existe algum outro endereço que devo especificar ou sera que não fiz a carga do cobol? Se não fiz, como é feita?

    Obrigado

    Adilson

    ResponderEliminar
  12. Bom dia...
    Por favor, alguém sabe o que pode esta acontecendo
    Executo o job
    //IBMUSER JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
    // MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
    //STEP0 EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
    //* STEPLIB DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
    //STEPLIB DD DSN=ADCD.Z110.PROCLIB,DISP=SHR
    //* -----------------------------------------------------
    //* COMPILAR Y LINKEDITAR HOLAMUN
    //* SYSLIB ES LA LIB. DE COPYSAMAS FUENTES
    //* SYSIN ES LA LIB. DE PROGRAMAS FUENTES O EJECUTABLES
    //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES
    //* -----------------------------------------------------
    //COBOL.SYSIN DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
    //LKED.SYSLMOD DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),
    // DISP=SHR
    //*
    e obtenho este erro:
    01.55.48 JOB00044 CSV003I REQUESTED MODULE IGYCRCTL NOT FOUND

    Em ADCD.Z110.PROCLIB nao exite o modulo.

    Obrigado

    Adilson

    ResponderEliminar
  13. Olá Claudemar.

    Estou iniciando em COBOL, conheço algumas linguagens e uso as técnicas de TDD e BDD para construir projetos. Qual seria o caminho para usar isso no Cobol, ou seja, como faço para implementar testes unitários/funcionais? Que ambiente e ferramentas eu preciso?

    Grato.

    Mario S.

    ResponderEliminar
    Respostas
    1. Daria para você testar no proprio Hercules rodando o Z/os, acredito que tenha uma ferramenta que de também para testar os cobols, agora não me lembro mas acredito que deva existir.

      Eliminar