The following illustrates the sample batch program as output from the DML precompiler.
*DMLIST SAMPLE1 START #REGEQU STM R14,R12,12(R13) LR R12,R15 USING SAMPLE1,R12,R11,R10 LR R11,R12 LA R11,4095(R11) LA R11,1(R11) LA R10,4095(R11) LA R10,1(R10) ST R13,SAVEAREA+4 LA R7,SAVEAREA ST R7,8(R13) LA R13,SAVEAREA B BEGIN @MODE MODE=BATCH,DEBUG=YES * @INVOKE SUBSCH=EMPSS01,SCHEMA=EMPSCHM,VERSION=100 * @COPY IDMS,SUBSCHEMA-CTRL DS 0D SSCTRL DS 0CL216 PGMNAME DC CL8' ' ERRSTAT DC CL4'1400' DBKEY DS FL4 RECNAME DC CL16' ' AREANAME DC CL16' ' ERRORSET DC CL16' ' ERRORREC DC CL16' ' ERRAREA DC CL16' ' SSCIDBCM DS 0CL100 IDBMSCOM DS 100CL1 ORG SSCIDBCM RDBMSCOM DS 0CL100 PGINFO DS 0CL4 PGINFGRP DS HL2 PGINFDBK DS HL2 DS CL96 DIRDBKEY DC FL4'0' DBSTATUS DS 0CL8 DBSTMTCD DS CL2 DBSTATCD DS CL5 DS CL1 RECOCCUR DC FL4'0' DMLSEQ DC FL4'0' **************************************** * @COPY IDMS,SUBSCHEMA-RECORDS DS 0D STRUCTUR DS 0CL12 STRCODE DS CL2 ADMIN EQU C'A' PROJECT EQU C'P1' STRDATE DS 0CL8 STRYEAR DS CL4 STRMONTH DS CL2 STRDAY DS CL2 DS CL2 **************************************** DS CL4 DS 0D SKILLA DS 0CL76 SKILID DS CL4 SKILNAME DS CL12 SKILDESC DS CL60 **************************************** DS CL4 DS 0D OFFIC DS 0CL76 OFFCODE DS CL3 OFFADDR DS 0CL46 OFFSTRT DS CL20 OFFCITY DS CL15 OFFSTATE DS CL2 OFFZIP DS 0CL9 OFFZIPF5 DS CL5 OFFZIPL4 DS CL4 OFFPHONE DS 3CL7 OFFAREA DS CL3 OFFSPEED DS CL3 **************************************** DS CL4 DS 0D NONHSPCL DS 0CL1052 NHCLMDT DS 0CL8 NHCLMYR DS CL4 NHCLMMO DS CL2 NHCLMDAY DS CL2 NHPTNAME DS 0CL25 NHPTFNAM DS CL10 NHPTLNAM DS CL15 NHPTBDAT DS 0CL8 NHPTBYR DS CL4 NHPTBMO DS CL2 NHPTBDA DS CL2 NHPTSEX DS CL1 NHRELEMP DS CL10 NHPHYNAM DS 0CL25 NHPHYFNM DS CL10 NHPHYLNM DS CL15 NHPHYADD DS 0CL46 NHPHYSTR DS CL20 NHPHYCTY DS CL15 NHPHYSTA DS CL2 NHPHYZIP DS 0CL9 NHPHYZ5 DS CL5 NHPHYZ4 DS CL4 NHPHYSID DS CL6 NHDIAGN DS 2CL60 NHNOPROC DS HL2 DS CL1 NHPHYCHG DS 0CL800 NHSERVDT DS 0CL8 NHSERVYR DS CL4 NHSERVMO DS CL2 NHSERVDA DS CL2 NHPROCCD DS CL4 NHDESCSV DS CL60 NHFEE DS PL5 DS CL3 DS CL720 **************************************** DS CL4 DS 0D JOBA DS 0CL296 JOBID DS CL4 JOBTITLE DS CL20 JOBDESCR DS 0CL120 JOBDSCLN DS 2CL60 JOBRQMNT DS 0CL120 JOBREQLN DS 2CL60 JOBMNSAL DS CL8 JOBMXSAL DS CL8 JOBSALGR DS 4CL2 JOBNMPOS DS CL3 JOBNMOPN DS CL3 DS CL2 **************************************** DS 0D INSPLAN DS 0CL132 INPCODE DS CL3 GROUPLIF EQU C'001' HMO EQU C'002' GRPHLTH EQU C'003' GROUPDNT EQU C'004' INPCNAME DS CL45 INPCADDR DS 0CL46 INPCSTRT DS CL20 INPCCITY DS CL15 INPCSTAT DS CL2 INPCZIP DS 0CL9 INPCZPF5 DS CL5 INPCZPL4 DS CL4 INPCPHON DS CL10 INPGRPNO DS CL6 INPDESCR DS 0CL20 INPDEDCT DS PL5 INPMXLIF DS PL5 INPFAMCS DS PL5 INPDEPCS DS PL5 DS CL2 **************************************** DS CL4 DS 0D HOSPCLM DS 0CL300 HCCLMDT DS 0CL8 HCCLMYR DS CL4 HCCLMMO DS CL2 HCCLMDAY DS CL2 HCPTNAME DS 0CL25 HCPTFNAM DS CL10 HCPTLNAM DS CL15 HCPTBDAT DS 0CL8 HCPTBYR DS CL4 HCPTBMO DS CL2 HCPTBDA DS CL2 HCPTSEX DS CL1 HCRELEMP DS CL10 HCHSPNAM DS CL25 HCHSPADD DS 0CL46 HCHSPSTR DS CL20 HCHSPCTY DS CL15 HCHSPSTA DS CL2 HCHSPZIP DS 0CL9 HCHSPZF5 DS CL5 HCHSPZL4 DS CL4 HCADMTDT DS 0CL8 HCADMTYR DS CL4 HCADMTMO DS CL2 HCADMTDA DS CL2 HCDSCGDT DS 0CL8 HCDSCGYR DS CL4 HCDSCGMO DS CL2 HCDSCGDA DS CL2 HCDIAGN DS 2CL60 HCHSPCHG DS 0CL41 HCRMBRD DS 0CL26 HCWARD DS 0CL13 HCWDDAYS DS PL3 HCWDRATE DS PL5 HCWDTOTL DS PL5 HCSPRIV DS 0CL13 HCSDAYS DS PL3 HCSRATE DS PL5 HCSTOTAL DS PL5 HCOTHCHG DS 0CL15 HCDELVCH DS PL5 HCANSTHC DS PL5 HCLABCST DS PL5 **************************************** DS CL4 DS 0D EXPRTISE DS 0CL12 EXPSKLVL DS CL2 EXPERT EQU C'04' PROFICNT EQU C'03' COMPETNT EQU C'02' ELEMNTRY EQU C'01' EXPDATE DS 0CL8 EXPYEAR DS CL4 EXPMONTH DS CL2 EXPDAY DS CL2 DS CL2 **************************************** DS CL4 DS 0D EMPOSITN DS 0CL32 EPSTRTDT DS 0CL8 EPSTRTYR DS CL4 EPSTRTMO DS CL2 EPSTRTDA DS CL2 EPFINIDT DS 0CL8 EPFINIYR DS CL4 EPFINIMO DS CL2 EPFINIDA DS CL2 EPSALGRD DS CL2 EPSALAMT DS PL5 EPBONPCT DS PL2 EPCMMPCT DS PL2 EPOTRATE DS PL2 DS CL3 **************************************** DS 0D EMPLOYE DS 0CL120 EMPID DS CL4 EMPNAME DS 0CL25 EMPFNAME DS CL10 EMPLNAME DS CL15 EMPADDR DS 0CL46 EMPSTRET DS CL20 EMPCITY DS CL15 EMPSTATE DS CL2 EMPZIP DS 0CL9 EMPZIPF5 DS CL5 EMPZIPL4 DS CL4 EMPPHONE DS CL10 EMPSTATU DS CL2 ACTIVE EQU C'01' STDSBL EQU C'02' LTDSBL EQU C'03' LVOFAB EQU C'04' TRMINATD EQU C'05' EMPSSNUM DS CL9 EMPSTDT DS 0CL8 EMPSTYR DS CL4 EMPSTMO DS CL2 EMPSTDA DS CL2 EMPTRMDT DS 0CL8 EMPTRMYR DS CL4 EMPTRMMO DS CL2 EMPTRMDA DS CL2 EMPBIRDT DS 0CL8 EMPBIRYR DS CL4 EMPBIRMO DS CL2 EMPBIRDA DS CL2 **************************************** DS 0D DEPARTMT DS 0CL56 DEPTID DS CL4 DEPTNAME DS CL45 DEPTHDID DS CL4 DS CL3 **************************************** DS 0D DENTCLM DS 0CL932 DCCLMDT DS 0CL8 DCCLMYR DS CL4 DCCLMMO DS CL2 DCCLMDA DS CL2 DCPNAME DS 0CL25 DCPFNAME DS CL10 DCPLNAME DS CL15 DCPBIRDT DS 0CL8 DCPBIRYR DS CL4 DCPBIRMO DS CL2 DCPBIRDA DS CL2 DCPSEX DS CL1 DCRELEMP DS CL10 DCDNNAME DS 0CL25 DCDNFNAM DS CL10 DCDNLNAM DS CL15 DCDNADDR DS 0CL46 DCDNSTR DS CL20 DCDNCITY DS CL15 DCDNSTAT DS CL2 DCDNZIP DS 0CL9 DCDNZPF5 DS CL5 DCDNZPL4 DS CL4 DCDNLICN DS CL6 DCNOPROC DS HL2 DS CL1 DCDNCHGS DS 0CL800 DCTOTHNO DS CL2 DCSERVDT DS 0CL8 DCSERVYR DS CL4 DCSERVMO DS CL2 DCSERVDA DS CL2 DCPROCCD DS CL4 DCDESCSV DS CL60 DCFEE DS PL5 DS CL1 DS CL720 **************************************** DS CL4 DS 0D COVERGE DS 0CL20 COVSELDT DS 0CL8 COVSELYR DS CL4 COVSELMO DS CL2 COVSELDA DS CL2 COVTRMDT DS 0CL8 COVTRMYR DS CL4 COVTRMMO DS CL2 COVTRMDA DS CL2 COVTYPE DS CL1 COVMASTR EQU C'M' COVFAMLY EQU C'F' COVDPNDT EQU C'D' COVPLNCD DS CL3 GROUP_LIFE EQU C'001' HMO EQU C'002' GROUP_HEALTH EQU C'003' GROUP_DENTAL EQU C'004' **************************************** DS CL4 BEGIN DS 0F * @COPY IDMS,SUBSCHEMA-BINDS @BIND SUBSCH='EMPSS01 ',SCB=SSCTRL,DICTNAM='APPLDICT' @BIND REC='OFFICE',IOAREA=OFFIC @BIND REC='EMPLOYEE',IOAREA=EMPLOYE @BIND REC='DEPARTMENT',IOAREA=DEPARTMT OPEN (OUTFILE,OUTPUT) MVC EDSW,=C'N' SET SWITCHES MVC DSW,=C'N' MVC ESW,=C'N' LA R5,MAIN000 LOAD ADDRESS OF MAINLINE ROUTINE B PRTHEAD MAIN000 EQU * @READY ALL,RDONLY=YES READY ALL DATABASE AREAS CLC ERRSTAT,STATOK CHECK IF ERROR BNE AREAERR BRANCH TO ERROR ROUTINE @OBTAIN FIRST,AREA='ORG-DEMO-REGION',REC='OFFICE' NEWOFFC CLC ERRSTAT,STATOK CHECK IF NO OFFICE BNE AREAERR MVC OCODE,OFFCODE MVC OCITY,OFFCITY @OBTAIN FIRST,SET='OFFICE-EMPLOYEE',REC='EMPLOYEE' CLC ERRSTAT,STATOK CHECK IF NO EMPLOYEE BNE OBERR1 MVC EID,EMPID MOVE EMPLOYEE ID MVC FNAME,EMPFNAME MOVE EMPLOYEE FIRST NAME MVC LNAME,EMPLNAME MOVE EMPLOYEE LAST NAME MVC WALK,EMPID SAVE ID MVC STATNUM,EMPSTATU MOVE EMPLOYEE STATUS LA R6,NEWDPT LOAD ADDRESS OF NEW DEPT ROUTINE B CKSTAT BRANCH TO STATUS-CHECK RTN NEWDPT EQU * @OBTAIN OWNER,SET='DEPT-EMPLOYEE' CLC ERRSTAT,STATOK CHECK IF DEPARTMENT BNE OBERR2 MVC DID,DEPTID MVC DEPT,DEPTNAME LA R5,MAIN020 LOAD ADDRESS OF SET-WALK RTN B PRINTREC PRINT DEPARTMENT INFORMATION MAIN020 EQU * * @OBTAIN NEXT,SET='DEPT-EMPLOYEE',REC='EMPLOYEE' CLC ERRSTAT,0307 CHECK IF END OF SET BE MAIN030 BRANCH IF END OF SET CLC ERRSTAT,STATOK CHECK IF ERROR BNE OBERR3 MVC EID,EMPID MOVE EMPLOYEE ID MVC FNAME,EMPFNAME MOVE EMPLOYEE FIRST NAME MVC LNAME,EMPLNAME MOVE EMPLOYEE LAST NAME MVC STATNUM,EMPSTATU MOVE EMPLOYEE STATUS LA R6,MAIN025 LOAD ADDRESS OF PRINT LINK B CKSTAT MAIN025 EQU * LA R5,MAIN020 B PRINTREC MAIN030 EQU * MVC EMPID,WALK @FIND CALC,REC='EMPLOYEE' FIND NEXT EMPLOYEE CLC ERRSTAT,STATOK CHECK IF ERROR BNE CALCERR REPEAT EQU * @OBTAIN NEXT,SET='OFFICE-EMPLOYEE',REC='EMPLOYEE' CLC ERRSTAT,=C'0307' END OF SET ? BE MAIN040 BRANCH IF END OF SET CLC ERRSTAT,STATOK BNE OBERR1 @IF SET='DEPT-EMPLOYEE',MEMBER=YES,GOTO=REPEAT MVC EID,EMPID MOVE EMPLOYEE ID MVC FNAME,EMPFNAME MOVE EMPLOYEE FIRST NAME MVC LNAME,EMPLNAME MOVE EMPLOYEE LAST NAME MVC WALK,EMPID MVC STATNUM,EMPSTATU LA R6,NEWDPT ADDRESS OF DEPT ROUTINE B CKSTAT MAIN040 EQU * @OBTAIN NEXT,AREA='ORG-DEMO-REGION',REC='OFFICE' B NEWOFFC EOF EQU * @FINISH * CLC ERRSTAT,STATOK BNE FINERR CLOSE (OUTFILE) L R13,SAVEAREA+4 LM R14,R12,12(R13) BR R14 RETURN * ERROR ROUTINES * BSERROR EQU * MVI ERRMSG,C' ' MVC ERRMSG+1(19),ERRMSG MVI ERRNUM,C' ' MVC ERRNUM+1(3),ERRNUM MVC ERRNUM,ERRSTAT MVC ERRMSG,BSMSG B PRINTERR BRERROR EQU * MVI ERRMSG,C' ' MVC ERRMSG+1(19),ERRMSG MVI ERRNUM,C' ' MVC ERRNUM+1(3),ERRNUM MVC ERRNUM,ERRSTAT MVC ERRMSG,BRMSG B PRINTERR AREAERR EQU * MVI ERRMSG,C' ' MVC ERRMSG+1(19),ERRMSG MVI ERRNUM,C' ' MVC ERRNUM+1(3),ERRNUM MVC ERRNUM,ERRSTAT MVC ERRMSG,AREAMSG B PRINTERR CALCERR EQU * MVI ERRMSG,C' ' MVC ERRMSG+1(19),ERRMSG MVI ERRNUM,C' ' MVC ERRNUM+1(3),ERRNUM MVC ERRNUM,ERRSTAT MVC ERRMSG,CALMSG B PRINTERR FINERR EQU * MVI ERRMSG,C' ' MVC ERRMSG+1(19),ERRMSG MVI ERRNUM,C' ' MVC ERRNUM+1(3),ERRNUM MVC ERRNUM,ERRSTAT MVC ERRMSG,FINMSG B PRINTERR OBERR1 EQU * MVC EDSW,=C'Y' LA R5,MAIN040 B PRINTREC OBERR2 EQU * MVC DSW,=C'Y' LA R5,REPEAT B PRINTREC OBERR3 EQU * MVC ESW,=C'Y' LA R5,MAIN030 B PRINTREC * PRINT ROUTINES PRINTERR EQU * MVC ERRLINE,C' ' MVC ERRLINE+1(132),ERRLINE MVI ERRLINE,C'0' PUT OUTFILE,ERRLINE B EOF PRINTREC EQU * MVI LINE1,C' ' MVC LINE1+1(132),LINE1 MVI LINE1,C'0' MVI LINE2,C' ' MVC LINE2+1(132),LINE2 CLC EDSW,=C'Y' BE SKIPED CLC DSW,=C'Y' BE SKIPD MVC LINE1+27(45),DEPT MVC LINE2+27(4),DID CLC DSW,=C'Y' BE SKIPED SKIPD EQU * MVC LINE1+77(27),ENAME MVC LINE2+77(4),EID MVC LINE1+109(20),STAT SKIPED EQU * MVC LINE1+7(15),OCITY MVC LINE2+7(4),OCODE PUT OUTFILE,LINE1 PUT OUTFILE,LINE2 MVC EDSW,=C'N' MVC DSW,=C'N' MVC ESW,=C'N' BR R5 * CHECK STATUS ROUTINE * CKSTAT EQU * CLC STATNUM,=C'01' BE ACT CLC STATNUM,=C'02' BE STD CLC STATNUM,=C'03' BE LTD CLC STATNUM,=C'04' BE LVO CLC STATNUM,=C'05' BE TRM MVC STAT,=C' STATUS CODE ERROR ' BR R6 ACT EQU * MVC STAT,=C' ACTIVE ' BR R6 STD EQU * MVC STAT,=C' SHORT TERM DISABLED' BR R6 LTD EQU * MVC STAT,=C' LONG TERM DISBALED ' BR R6 LVO EQU * MVC STAT,=C' LEAVE OF ABSENCE ' BR R6 TRM EQU * MVC STAT,=C' TERMINATED ' BR R6 * PRINT REPORT HEADING ROUTINE * PRTHEAD EQU * MVI LINE1,C' ' MVC LINE1+1(132),LINE1 MVI LINE1,C'1' MVC LINE1+54(26),HEAD1 PUT OUTFILE,LINE1 MVI LINE1,C' ' MVC LINE1+1(132),LINE1 MVI LINE1,C'-' MVC LINE1+6(18),HEAD2O MVC LINE1+26(26),HEAD2D MVC LINE1+76(20),HEAD2E MVC LINE1+108(15),HEAD2S PUT OUTFILE,LINE1 BR R5 * WORKFLDS DC C'WORK-FIELDS' SAVEAREA DC 18F'0' STATNUM DS CL2 STAT DS CL20 STATOK DC CL4'0000' STATUS DS CL2 OCODE DS CL3 OCITY DS CL15 EID DS CL4 ENAME DS 0CL27 FNAME DS CL10 DS CL2 LNAME DS CL15 WALK DS CL4 DID DS CL4 DEPT DS CL45 ERRLINE DS 0CL133 DS CL1 DC CL48'* * * * * * * * * * * * * * * * * * * * ' DC CL6' ' ERRMSG DS CL20 ERRNUM DS CL4 DC CL6' ' DC CL48'* * * * * * * * * * * * * * * * * * * * ' DC CL5' ' BSMSG DC CL20'BIND SUBSCH ERROR # ' BRMSG DC CL20'BIND RECORD ERROR # ' AREAMSG DC CL20'READY AREA ERROR # ' CALMSG DC CL20'FIND CALC ERROR # ' FINMSG DC CL20'@FINISH ERROR # ' EDSW DS CL1 DSW DS CL1 ESW DS CL1 LINE1 DS CL133 LINE2 DS CL133 HEAD1 DC CL26'OFFICE PERSONNEL LISTING' HEAD2O DC CL18'OFFICE/OFFICE CODE' HEAD2D DC CL26'DEPARTMENT/DEPARTMENT CODE' HEAD2E DC CL20'EMPLOYEE/EMPLOYEE ID' HEAD2S DC CL15'EMPLOYEE STATUS' * OUTPUT FILE DCB INFO OUTFILE DCB DDNAME=OUTFILE,MACRF=PM,BLKSIZE=133,LRECL=133, X DSORG=PS LTORG END SAMPLE1
|
Copyright © 2014 CA.
All rights reserved.
|
|