Douglas Wilder
Active User
Joined: 28 Nov 2006 Posts: 305 Location: Deerfield IL
|
|
|
|
The general idea is that you write a very small cobol program, compile it and then send the compile listing into this macro and the easytrieve layouts are created.
My JCL is like this:
Code: |
//useridC JOB acctcode,'CONVERT COBOL/EASYT',CLASS=C,TIME=1,
// MSGCLASS=G,NOTIFY=&SYSUID,REGION=4096K,COND=(0,NE)
/*JOBPARM L=99,FORMS=X2SL,ROOM=XXXX
/*ROUTE PRINT RMT151
//**********************************************************
//** CREATE EZTRIEVE LAYOUT FROM COBOL COPYBOOK *******
//**********************************************************
//*******************************************************************
//* DELETE INFO FILE
//*******************************************************************
//STEP01R EXEC PGM=IEFBR14,COND=(0,NE)
//DELFILE DD DSN=userid.GLOSSARY.TABLE,
// DISP=(MOD,DELETE,DELETE),
// UNIT=(SYSDA,5),
// SPACE=(TRK,0)
//DELFILE1 DD DSN=userid.CBLCNVRT.OUTPUT,
// DISP=(MOD,DELETE,DELETE),
// UNIT=(SYSDA,5),
// SPACE=(TRK,0)
//***************************************************
//STEP01 EXEC PGM=IGYCRCTL,
// PARM='MAP,SOURCE,NOOBJECT,NODECK,NOSEQ'
//SYSIN DD DSN=userid.COBOL.LAYOUTS(CNVPRG),DISP=SHR
//SYSLIB DD DSN=userid.COBOL.LAYOUTS,DISP=SHR
// DD DSN=NODE1.COPYLIB,DISP=SHR
//SYSLIN DD DSN=&&LOADSET,
// DCB=(BLKSIZE=3120,LRECL=80,RECFM=FB),
// DISP=(,PASS),
// SPACE=(CYL,(2,2),RLSE),
// UNIT=DISK
//SYSPRINT DD DSN=userid.GLOSSARY.TABLE,DISP=(NEW,CATLG),
// DCB=(LRECL=133,RECFM=F),SPACE=(CYL,(30,30),RLSE),
// UNIT=SYSDA
//SYSPUNCH DD DUMMY,DCB=BLKSIZE=80
//SYSUT1 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT1 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT2 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT3 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT4 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT5 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT6 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//SYSUT7 DD SPACE=(CYL,(1,5),RLSE),UNIT=DISK
//*
//***************************************************
//STEP02R EXEC PGM=IEFBR14
//DD1 DD DSN=userid.CBLCNVRT.OUTPUT,
// DISP=(MOD,DELETE,DELETE),SPACE=(TRK,1)
//***************************************************
//STEP02 EXEC PGM=EZTPA00
//STEPLIB DD DSN=IDC.EASYPLUS,DISP=SHR
//EZTVFM DD UNIT=SYSDA,SPACE=(CYL,(5,5))
//SYSPRINT DD SYSOUT=*
//GLOSTAB DD DSN=userid.GLOSSARY.TABLE,DISP=SHR
//PANDD1 DD DSN=IDC.PANAUDIT.PLUS30C.PANLIB,DISP=SHR
//EASYPGM DD DSN=userid.CBLCNVRT.OUTPUT,DISP=(NEW,CATLG),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=0),
// UNIT=SYSDA,SPACE=(CYL,(30,30),RLSE)
//SYSIN DD *
%CBLCNVRT GLOSTAB COBOL II12
/*
//
|
The cobol program in userid.COBOL.LAYOUTS(CNVPRG) is like this:
Code: |
IDENTIFICATION DIVISION. 00010001
PROGRAM-ID. TESTPRG. 00020005
AUTHOR. XXXXXXXX. 00030001
DATE-COMPILED. 00040001
******************************************************************00050001
******************************************************************00140001
ENVIRONMENT DIVISION. 00150001
CONFIGURATION SECTION. 00160001
INPUT-OUTPUT SECTION. 00170001
FILE-CONTROL. 00180001
******* SELECT IN-FILE ASSIGN TO IFILE. 00190007
DATA DIVISION. 00240001
FILE SECTION. 00250001
*******FD IN-FILE 00251007
******* RECORDING MODE IS F 00252007
******* BLOCK CONTAINS 0 RECORDS 00253007
******* LABEL RECORDS ARE STANDARD. 00254007
WORKING-STORAGE SECTION. 00480001
01 MCOLDEMO-REC. 00490006
COPY MCOLDEMO. 00500006
PROCEDURE DIVISION. 02400001
GOBACK. 02590001
|
Note the COPY MCOLDEMO is the copybook I wanted the easytrieve equivalent of. Put your copybook there. The layout generated is a little different if the copy is in the file section instead of the working storage section. Submit this JCL and the easytrieve layout will be created in userid.CBLCNVRT.OUTPUT. |
|