Professional Documents
Culture Documents
Arithmetic Operations
IDENTIFICATION DIVISION.
PROGRAM-ID. arithmet.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 num-1 pic s9(2) sign leading separate value 20.
77 num-2 pic s9(3) sign leading separate value -110.
77 add-result pic s9(3) sign leading separate value 0.
77 sub-result pic s9(3) sign leading separate value 0.
77 mul-result pic s9(3) sign leading separate value 0.
77 div-result pic s9(3) sign leading separate value 0.
77 div1-result pic s9(3) sign leading separate value 0.
PROCEDURE DIVISION.
accept num-1.
accept num-2.
display num-1.
display num-2.
add num-1, num-2 giving add-result.
subtract num-2 from num-1 giving sub-result.
Multiply num-1 by num-2 giving mul-result.
divide num-2 into num-1 giving div-result.
divide num-1 by num-2 giving div1-result.
display 'addition:' add-result.
display 'subtract:' sub-result.
display 'multiply:' mul-result.
display 'divide:'
div-result.
display 'divide:'
div1-result.
STOP RUN.
2.Celcius value Calculation
IDENTIFICATION DIVISION.
PROGRAM-ID. celcius.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 c pic 9(3).
77 f pic 9(2)v99 value is 96.99.
PROCEDURE DIVISION.
compute c rounded = (5 / 9) * (f - 32) on size error g
o to error-para.
display 'celcius value is =' c.
stop run.
error-para.
display 'an error has occured'.
3.Hello program(sample)
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY 'HELLO COBOL'.
STOP RUN.
4.perform
IDENTIFICATION DIVISION.
PROGRAM-ID. PERFORM1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-NAMES.
02 I PIC 9(4) VALUE 0.
02 A PIC 9(4) OCCURS 20 TIMES.
PROCEDURE DIVISION.
BEGIN-PARA.
MOVE 1 TO I.
PERFORM ACCEPT-PARA VARYING I FROM 1 BY 1 UNTIL I>20.
PERFORM DISPLAY-PARA VARYING I FROM 1 BY 1 UNTIL I>20.
STOP RUN.
ACCEPT-PARA.
ACCEPT A(I).
ADD 100 TO A(I).
DISPLAY-PARA.
DISPLAY A(I).
5.Square Root
IDENTIFICATION DIVISION.
PROGRAM-ID. SQRT1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC S9(3) VALUE 17.
01 B PIC S9(3) VALUE -999.
01 C PIC S9(4) VALUE 0.
PROCEDURE DIVISION.
COMPUTE C = FUNCTION SQRT(A).
MOVE C TO B.
DISPLAY B.
STOP RUN.
6.System date
IDENTIFICATION DIVISION.
PROGRAM-ID. celcius.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 sysdt pic 9(6).
01 sysday pic x(10).
01 systme pic x(6).
PROCEDURE DIVISION.
accept sysdt from date.
display 'date/dd/mm/yy=' sysdt.
accept sysday from day.
display 'yyjulian=' sysday.
accept systme from time.
display 'time-hh-mm-ss=' systme.
stop run.
Files
1.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT EMP-FILE.
WRITE-PARA.
ACCEPT E-NO.
ACCEPT E-NAME
ACCEPT E-SAL.
DISPLAY 'ACCEPTED:' EMP-REC
WRITE EMP-REC.
CLOSE-PARA.
CLOSE EMP-FILE.
2.Append files
*PROGRAM TO APPEND SEQUENTIAL FILE
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO INDD.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD.
01 EMP-REC.
02 E-NO PIC 9(4).
02 E-NAME PIC X(15).
02 E-SAL PIC 9(4)V999.
02 FILLER PIC X(7974).
WORKING-STORAGE SECTION.
77 EOF PIC X VALUE 'Y'.
PROCEDURE DIVISION.
BEGIN-PARA.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN EXTEND EMP-FILE.
WRITE-PARA.
ACCEPT E-NO.
ACCEPT E-NAME
ACCEPT E-SAL.
DISPLAY 'ACCEPTED:' EMP-REC
WRITE EMP-REC.
CLOSE-PARA.
CLOSE EMP-FILE.
3.Read a File
*PROGRAM TO READ A SEQUENTIAL FILE
IDENTIFICATION DIVISION.
PROGRAM-ID. READF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO INDD.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD.
01 EMP-REC.
02 E-NO PIC 9(4).
02 E-NAME PIC X(15).
02 E-SAL PIC 9(4)V999.
02 FILLER PIC X(14).
WORKING-STORAGE SECTION.
77 DATA1 PIC X.
88 EOF VALUE 'Y'.
88 NOT-EOF VALUE 'N'.
01 I PIC 99.
01 WS-EMP-REC.
02 WS-E-NO PIC 9(4).
02 WS-E-NAME PIC X(15).
02 WS-E-SAL PIC 9(4)V999.
02 WS-FILLER PIC X(14).
PROCEDURE DIVISION.
BEGIN-PARA.
MOVE 'N' TO DATA1
PERFORM OPEN-PARA.
PERFORM READ-PARA.
PERFORM DISP-PARA UNTIL EOF.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT EMP-FILE.
READ-PARA.
DISPLAY 'INSIDE'.
READ EMP-FILE INTO WS-EMP-REC AT END MOVE 'Y' TO DATA1.
DISP-PARA.
COMPUTE I = I + 1.
MOVE EMP-REC TO WS-EMP-REC.
DISPLAY 'WS-EMP-REC' I , WS-EMP-REC.
PERFORM READ-PARA.
CLOSE-PARA.
CLOSE EMP-FILE.
4. Rewrite a File
ACCEPT
ACCEPT
MOVE
REWRITE
END-IF
END-READ.
WS-EMP-NAME
WS-EMP-SAL
E-FILLER TO WS-EMP-FILLER
EMP-REC FROM WS-EMP-REC
400-CLOSE-PART.
CLOSE EMP-FILE.
5.Copy a sequential file to another
*PROGRAM TO COPY A SEQUENTIAL FILE
IDENTIFICATION DIVISION.
PROGRAM-ID. COPYF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO INDD.
SELECT EMP1-FILE ASSIGN TO OUTDD.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD.
01 EMP-REC.
02 E-NO PIC 9(4).
02 E-NAME PIC X(15).
02 E-SAL PIC 9(4)V999.
02 FILLER PIC X(14).
FD EMP1-FILE
LABEL RECORDS ARE STANDARD.
01 EMP1-REC.
02 E1-NO PIC 9(4).
02 E1-NAME PIC X(15).
02 E1-SAL PIC 9(4)V999.
02 FILLER PIC X(14).
WORKING-STORAGE SECTION.
77 DATA1 PIC X.
88 EOF VALUE 'Y'.
88 NOT-EOF VALUE 'N'.
01 I PIC 99.
01 WS-EMP-REC.
02 WS-E-NO PIC 9(4).
02 WS-E-NAME PIC X(15).
02 WS-E-SAL PIC 9(4)V999.
02 WS-FILLER PIC X(14).
PROCEDURE DIVISION.
BEGIN-PARA.
MOVE 'N' TO DATA1
PERFORM OPEN-PARA.
PERFORM READ-PARA.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1
PIC 9(2).
77 RESULT
PIC 9(3).
LINKAGE SECTION.
77 NUM
PIC 9(2).
PROCEDURE DIVISION USING NUM.
COMPUTE RESULT = 1.
PERFORM COMP-PARA VARYING NUM1 FROM 1 BY 1 UNTIL NUM1 > NUM
PERFORM DISP-PARA.
EXIT PROGRAM.
COMP-PARA.
COMPUTE RESULT = RESULT * NUM1.
DISPLAY 'RESULT:' RESULT NUM1.
DISP-PARA.
DISPLAY 'THE FACTORIAL VALUE IS' RESULT.
2.square root
Mainprogram
IDENTIFICATION DIVISION.
PROGRAM-ID. SUBROUT2.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 INPT
PIC 9(3)V99 VALUE 166.22.
77 SQROOT
PIC 9(3).99.
PROCEDURE DIVISION.
CALL 'CALROOT' USING INPT SQROOT.
DISPLAY SQROOT.
STOP RUN.
SQROOT
IDENTIFICATION DIVISION.
PROGRAM-ID. SQROOT.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC S9(3) VALUE 17.
01 B PIC S9(3) VALUE -999.
01 C PIC S9(4) VALUE 0.
PROCEDURE DIVISION.
COMPUTE C = FUNCTION SQRT(A).
MOVE C TO B.
DISPLAY B.
STOP RUN.
3.For string
IDENTIFICATION DIVISION.
PROGRAM-ID. SUBROUTS.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NAME1
PIC X(12) VALUE 'PPPPPPP'.
77 NAME2
PIC X(10) VALUE 'AAAAAAA'.
77 NAME
PIC X(30).
PROCEDURE DIVISION.
CALL 'STRINGS' USING NAME1, NAME2.
DISPLAY NAME.
STOP RUN.
Strings
IDENTIFICATION DIVISION.
PROGRAM-ID. strings.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 op pic x(20) VALUE SPACES.
LINKAGE SECTION.
77 name3 pic x(12).
77 name4 pic x(10).
procedure division using name3 name4.
string name3, name4 delimited by ' ' into op.
display op.
exit program.
4.Main program for Unstring
IDENTIFICATION DIVISION.
PROGRAM-ID. SUBROUTU.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NAME1
PIC X(5).
77 NAME2
PIC X(5).
77 NAME
PIC X(11) VALUE 'AAAIAPPPIP'.
PROCEDURE DIVISION.
CALL 'UNSTRNGS' USING NAME.
DISPLAY 'HERE'.
DISPLAY 'NAME1:' NAME1.
DISPLAY 'NAME2:' NAME2.
STOP RUN.
Unstring
IDENTIFICATION DIVISION.
PROGRAM-ID. UNSTRNGS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
77 OP PIC X(10).
77 NAME1 PIC X(5) VALUE SPACES.
77 NAME2 PIC X(5) VALUE SPACES.
PROCEDURE DIVISION USING OP.
UNSTRING OP DELIMITED BY 'I' INTO NAME1, NAME2.
DISPLAY NAME1.
DISPLAY NAME2.
EXIT PROGRAM.
Calroot
IDENTIFICATION DIVISION.
PROGRAM-ID. CALROOT.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
77 INPT1
PIC 9(3)V99.
77 SQROOT
PIC 9(3).99.
PROCEDURE DIVISION USING INPT1, SQROOT.
COMPUTE SQROOT = FUNCTION SQRT(INPT1).
DISPLAY SQROOT.
EXIT PROGRAM.
5.Facto
IDENTIFICATION DIVISION.
PROGRAM-ID. FACTO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 FN
PIC 9(5) VALUE 1.
77 NUM PIC 9(2) VALUE 0.
77 NUM1 PIC 9(2) VALUE 5.
77 NUM2 PIC $$$$$.
PROCEDURE DIVISION.
*
IF NUM1 = 0 PERFORM DISPLAY1-PARA.
PERFORM COMPT-PARA VARYING NUM FROM 1 B
Y 1 UNTIL NUM > NUM1.
PERFORM DISPLAY-PARA.
STOP RUN.
COMPT-PARA.
COMPUTE FN = FN * NUM.
DISPLAY-PARA.
MOVE FN TO NUM2.
DISPLAY 'THE FACTORIAL VALUE IS ' NUM2.
*DISPLAY1-PARA.
PERFORM 200-ACCEPT-PART.
PERFORM 400-CLOSE-PART.
STOP RUN.
100-OPEN-PART.
OPEN I-O EMP-FILE.
200-ACCEPT-PART.
ACCEPT E-NO. DISPLAY 'PASSED:' E-NO.
*
ACCEPT E-NAME. DISPLAY 'PASSED:' E-NAME.
START EMP-FILE KEY EQUAL TO E-NO.
PERFORM UNTIL E-O-F = 'Y'
READ EMP-FILE NEXT AT END MOVE 'Y' TO E-O-F END-READ
DISPLAY 'RECORD FOUND: NAME IS ' E-NAME E-NO
END-PERFORM.
*
*
*
*
*
*
*
IF E-O-F= 'Y'
ACCEPT WS-EMP-NAME
DELETE EMP-FILE RECORD NOT INVALID KEY DISPLAY 'DELETED:'
DISPLAY 'FILE:' WS-EMP-FILE.
ELSE
DISPLAY 'RECORD FOUND: NAME IS ' E-NAME E-NO
END-IF.
400-CLOSE-PART.
CLOSE EMP-FILE.
Temp
//APTJJXXX JOB (TG5GGY),CLASS=X,MSGCLASS=Y,MSGLEVEL=(1,1),
//
NOTIFY=&SYSUID
//*
//GDGDEFN EXEC PGM=IDCAMS
//*
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
DELETE (APTJJ.TEST.VSAM)
DEFINE CLUSTER ( NAME(APTJJ.TEST.VSAM) MGMTCLAS (MC003208) CYLINDERS (20 10) RECORDSIZE (98 98) VOLUMES(*,*,*) KEYS (4 0) IMBED FREESPACE (20 20) -
REUSE SHAREOPTIONS(2
3)
JOB (TG5GGY),CLASS=X,MSGCLASS=Y,MSGLEVEL=(1,1),
NOTIFY=&SYSUID
PROC
EXEC PGM=IGYCRCTL,REGION=2048K
DD DSN=SYS2.IGY.SIGYCOMP,DISP=SHR
DD DSN=&SISIN(&MEM),DISP=SHR
DD DSN=APTJJ.COBOL.PROGRAMS,DISP=SHR
DD SYSOUT=*
DD DSN=&&LOADSET,UNIT=SYSDA,
DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
DCB=(BLKSIZE=3200)
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DD UNIT=SYSDA,SPACE=(CYL,(1,1))
EXEC PGM=HEWL,COND=(4,LT,COBCOMPL),REGION=1024K
DD DSN=SYS2.CEE.SCEELKED,DISP=SHR
DD DSN=APTJJ.COBOL.LOAD,DISP=SHR
DD SYSOUT=*
DD DSN=&&LOADSET,DISP=(OLD,DELETE)
DD DSN=&LOAD(&MEM),SPACE=(TRK,(10,10,1)),
UNIT=SYSDA,DISP=(MOD,KEEP)
DD UNIT=SYSDA,SPACE=(TRK,(10,10))
PEND
EXEC COBCOMP,SISIN='APTJJ.COBOL.PROGRAMS',MEM=CALROOT,
LOAD='APTJJ.COBOL.LOAD'
EXEC PGM=CALROOT,REGION=1024K,COND=(4,LT)
DD DSN=APTJJ.COBOL.LOAD,DISP=SHR
DD DSN=APTJJ.TEST.VSAM,DISP=(SHR,CATLG,KEEP)
//*indd and outdd can be included here for input and output file
respe*/
//*
//SYSIN DD *
1500
/*
//SYSPRINT DD SYSOUT=*
//SYSUDUMB DD SYSOUT=*
2.
For subroutines
//*SYSUDUMB DD
SYSOUT=*
:
:
:
:
:
:
:
:
:
:
:
:
MC003212
SC000404
VKP504
3390
**None**
PO
U
0
32760
8
8
PDS
Current Allocation
Allocated tracks . : 29
Allocated extents . : 5
Maximum dir. blocks : 10
Current Utilization
Used tracks . . . .
Used extents . . .
Used dir. blocks .
Number of members .
Referenced date . . :
Project
APSJA.LPG.SRC(MAIN)
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTFILE ASSIGN TO DD1
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD CUSTFILE
LABEL RECORDS ARE STANDARD.
01 CUSTREC.
05 CNUM
PIC 9(3).
05 CNAME
PIC X(10).
05 CAGE
PIC 9(2).
05 CADD
PIC X(20).
05 CLCDD
PIC 9(5).
05 CCOMP
PIC X.
05 CWLNO
PIC 9(2).
05 FILLER PIC X(37) VALUE ' '.
WORKING-STORAGE SECTION.
:
:
:
:
29
5
5
29
Newmain
IDENTIFICATION DIVISION.
PROGRAM-ID. NEWMAIN.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTFILE ASSIGN TO DD1
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD CUSTFILE
LABEL RECORDS ARE STANDARD.
01 CUSTREC.
05 CNUM
PIC 9(3).
05 CNAME
PIC X(10).
05 CAGE
PIC 9(2).
05 CADD
PIC X(20).
05 CLCDD
PIC 9(5).
05 CCOMP
PIC X.
05 CWLNO
PIC 9(2).
WORKING-STORAGE SECTION.
77 CTYPE PIC X.
77 INPNO PIC 999.
77 CUSNO PIC 999 VALUE 100.
77 MAXWAIT PIC 99 VALUE 0.
77 FS
PIC XX.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM START-PARA.
PERFORM CUSTYPE-PARA.
PERFORM PARA-END.
START-PARA.
OPEN INPUT CUSTFILE.
*
PERFORM UNTIL FS = '10'
READ-PARA.
READ CUSTFILE AT END GO TO CUSTYPE-PARA.
DISPLAY CUSTREC.
IF MAXWAIT < CWLNO
MOVE CWLNO TO MAXWAIT
END-IF.
IF CUSNO < CNUM
MOVE CNUM TO CUSNO
END-IF.
*
END-PERFORM.
GO TO READ-PARA.
CLOSE CUSTFILE.
CUSTYPE-PARA.
ACCEPT CTYPE.
IF CTYPE = 'O'
OPEN I-O CUSTFILE
ACCEPT INPNO
PERFORM RD-PARA
ELSE
CALL 'NEW1' USING CUSNO MAXWAIT
END-IF.
RD-PARA.
PERFORM UNTIL FS = '10'
New Customer
IDENTIFICATION DIVISION.
PROGRAM-ID. NEW1.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTFILE ASSIGN TO DD1
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD CUSTFILE
LABEL RECORDS ARE STANDARD.
01 CUST-REC.
05 C-NUM PIC 9(3).
05 C-NAME PIC X(10).
05 C-AGE PIC 9(2).
05 C-ADD PIC X(20).
05 C-LCDD PIC 9(5).
05 C-COMP PIC X(1).
05 C-WLNO PIC 9(2).
05 FILLER PIC X(37) VALUE SPACES.
WORKING-STORAGE SECTION.
01 FS PIC XX.
01 WL PIC 99 VALUE 00.
LINKAGE SECTION.
77 NUM1 PIC 999.
OLD CUSTOMER
IDENTIFICATION DIVISION.
PROGRAM-ID. OLD1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT COMPFILE ASSIGN TO COMPDD.
DATA DIVISION.
FILE SECTION.
FD COMPFILE.
01 COMPREC.
05 OCNO PIC 999.
05 ODOC PIC 9(5).
05 OCS PIC X.
05 FILLER PIC X(71) VALUE SPACES.
WORKING-STORAGE SECTION.
01 NEWDAY PIC 999.
01 JDATE PIC 9(5).
01 OLDDAY PIC 999.
LINKAGE SECTION.
01 OCREC.
05 NUM1 PIC 999.
05 NAME1 PIC X(10).
05 AGE1 PIC 99.
05 ADD1 PIC X(20).
05 LCDD1 PIC 9(5).
05 COMP1 PIC X.
05 WLNO1 PIC 99.
05 FILLER PIC X(37) VALUE SPACES.
77 MAXWL PIC 99.
PROCEDURE DIVISION USING OCREC MAXWL.
OLD-START.
OPEN I-O COMPFILE.
PERFORM DISP-PARA.
PERFORM DATE-PARA.
PERFORM CPLT-PARA.
PERFORM OLD-END.
DISP-PARA.
DISPLAY "THE CUSTOMER DETAILS:".
DISPLAY OCREC.
DATE-PARA.
ACCEPT JDATE FROM DAY.
MOVE JDATE(3:3) TO NEWDAY.
MOVE LCDD1(3:3) TO OLDDAY.
SUBTRACT OLDDAY FROM NEWDAY GIVING NEWDAY.
IF NEWDAY <= 20
DISPLAY "EARLY ORDER..SORRY....SAVE LPG !!"
GO TO OLD-END
ELSE
MOVE JDATE TO LCDD1
CALL 'STOCK' USING WLNO1 MAXWL
END-IF.
CPLT-PARA.
READ COMPFILE AT END GO TO OLD-END.
IF NUM1 = OCNO
IF COMP1 = 'Y'
IF OCS = 'O'
DISPLAY "COMPLAINT TO ATTEND ON DELIVERY..."
MOVE 'C' TO OCS
REWRITE COMPREC
ELSE
MOVE 'N' TO COMP1
END-IF
ELSE
DISPLAY "NO COMPLAINTS..THANX !! SAVE LPG !!"
END-IF
ELSE GO TO CPLT-PARA
END-IF.
OLD-END.
CLOSE COMPFILE.
EXIT PROGRAM.
STOCK FILE
IDENTIFICATION DIVISION.
PROGRAM-ID. STOCK.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STOCFILE ASSIGN TO DDSTK.
DATA DIVISION.
FILE SECTION.
FD STOCFILE
LABEL RECORDS ARE STANDARD.
01 STOC-REC.
05 S-QTY PIC 9(5).
05 S-ORDER PIC 9(5).
05 FILLER PIC X(70) VALUE SPACES.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
77 WLNO PIC 99.
77 MAXWL PIC 99.
PROCEDURE DIVISION USING WLNO MAXWL.
STK-START.
OPEN I-O STOCFILE.
STK-PARA.
READ STOCFILE INTO STOC-REC.
IF S-QTY <= 20
ADD 1 MAXWL GIVING WLNO MAXWL
DISPLAY " ORDER 100 "
DISPLAY "OUT OF STOCK...YOUR WLNO IS " WLNO
ADD 80 TO S-QTY
MOVE 80 TO S-ORDER
ELSE
DISPLAY " THE CYLINDER HAS BEEN DELIVERED "
MOVE ZEROS TO WLNO S-ORDER
SUBTRACT 1 FROM S-QTY
END-IF.
STK-LAST.
REWRITE STOC-REC.
CLOSE STOCFILE.
EXIT PROGRAM.
JCL PROGRAMS(UTILITIES INCLUDED)
1.//APSJASS1 JOB (4R8C1D,TRNG),'MAHIMAI',
//
CLASS=X, MSGCLASS=Y,
//
NOTIFY=&SYSUID
//STEP01 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=APSJA.EDS.PS,
//
DISP=(OLD,KEEP,KEEP)
//SYSUT2 DD DSN=APSJA.EDS.PS3,
//
DISP=(NEW,CATLG,DELETE),
//
SPACE=(TRK,(2,2)),
//
DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//
2.
//APSJAS00 JOB (4R8C1D,TRNG),'MAHIMAI',
//
CLASS=X,MSGCLASS=Y,NOTIFY=&SYSUID
//STEP01 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=APSJA.UTIL.JCL,
//
DISP=(SHR,KEEP,KEEP)
//SYSUT2 DD DSN=APSJA.MAHIMAI.JCL2,
//
DISP=(NEW,KEEP,KEEP),
//
SPACE=(TRK,(2,2,2)),
//
DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD *
COPY INDD=SYSUT1,
OUTDD=SYSUT2
SELECT MEMBER=(MEM1)
/*
//
3. //APSJASS2 JOB (4R8C1D,TRNG),'COPY PDS-PS DATASET',
//
CLASS=X,MSGCLASS=Y,
//
NOTIFY=&SYSUID
//STEP02 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=APSJA.EDS.PDS,
//
DISP=(OLD,KEEP,KEEP)
//SYSUT2 DD DSN=APSJA.EDS.PS4,
//
DISP=(NEW,CATLG,KEEP),
//
SPACE=(TRK,(4,4)),
//
DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD *
COPY INDD=SYSUT1 OUTDD=SYSUT2
/*
//
4. //APSJAS00 JOB (4R8C1D,TRNG),'SORTING',
//
CLASS=X,MSGCLASS=Y,NOTIFY=&SYSUID
//STEP01 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=APSJA.EDS.PDS(BEFSORT),
//
DISP=OLD
//SORTOUT DD DSN=APSJA.EDS.PDS(AFTSORT),
//
DISP=OLD
//SORTWK01 DD UNIT=PERMDA,
//
SPACE=(CYL,(1,1),RLSE)
//SORTWK02 DD UNIT=PERMDA,
//
SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
SORT FIELDS(1,5,CH,A)
/*
//
Vsam