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
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?
ResponderEliminarVou deixar alguns exemplos de programas cobol:
ResponderEliminarhttp://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
//*
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)
ResponderEliminar//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=*
Tenta rodar assim pra ver o que acontece:
Eliminar//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=*
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;
Eliminar//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=*
Bom dia, velho nenhum dos dois deu certo, nesse ultimo que vc postou deu erro no JCL Erro.
ResponderEliminarSTMT 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.
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;
Eliminar//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=*
Meu velho eu consegui resolver o problema.
ResponderEliminarpara compilar um programa cobol utiliza assim, foi só olhando na biblioteca da proc que eu consegui.
ResponderEliminar00001 //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=*
Boa tarde estou com um problema no meu JCL
ResponderEliminar"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.
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.
ResponderEliminar000001 //PROG08 JOB 001,DANIEL,MSGCLASS=C,MSGLEVEL=(1,1),
ResponderEliminar000002 // 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=*
Vai no SDSF e cole o resultado do job que você rodou, o JCL que você colocou não tem nenhum erro;
ResponderEliminarBom dia....
ResponderEliminarPor 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
Bom dia...
ResponderEliminarPor 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
Olá Claudemar.
ResponderEliminarEstou 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.
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