Professional Documents
Culture Documents
----------------------------------------------------------------
Intro COBOL Program Structure - Division, Section & Paragraph
ANY APPLICATION -> 1PGM -> 10000 FILE PGM --> FALL INTO 4 TYPES
TRANSACTION FILE(CREDIT CARD FOR OCT) MAIN FILE** - > MASTER CARD
FILE (C1111,02000.00,0.15
-
C1111,ANIL,10,000.00
-> CREATE A CREDIT CARD BILL ?? TOTAL-DUE-
CURRENT-MONTH + LAST-DUE + DUE-INTREST
-> IF WE HAVE MULTIPLE INPUT FILE IN PGM:
-> WE NEED TO USE A LOGIC - 2 SUCH:
1. MATCHING LOGIC
2. LOOK-UP LOGIC
2 FILE PGM:
--> 1. ACCTPGM1
1. DEFINE SOME ACCOUNT VARIABLE (*INPUT - OUTPUT VARIBALE)
2. GET THE INPUT -> ACCEPT
3. PROCESS
3.1 -> VALIDATE THE DATA
4. IF DATA IS VALID -> WRITE** - PUT THE DATA INTO A FILE.
=> WRITE STATEMENT: 1.USED TO MOVE THE DATA FROM PGM => FILE
2. WE CAN ONLY WRITE - FULL SINGLE RECORD
--> ACCTPGM2
1. DEFINE TH ACCOUNT FILE VARIBALE.
2. GET THE INPUT -. FILE --> READ**
3. PROCESS:
3.1 => CHECK THE ACCOUNT TYPE
1. SAVINGS --> OUTPUT FILE F1
2. CURRENT --> OUTPUT FILE F2
3. OTHER -> ERRRO DISPLAY/ABEND
4. AS PER THE ACCT-TYPE
-2 OUTPUT FILE > WRITE
INPUT -FILE F1 ---> READ => CHECK ACCT TYPE -> 1. FILE F2 <SAVING
2. FILE F3 < CURRENT
-PROJECT:
READ FILENAME
AT END
CLOSE THE LOOP.
COBOL CLASS 09:-
------------------------------
File Handling - OPEN, READ, WRITE, REWRITE,
DELETE & CLOSE
---------------------------
MAINFRAME -> USED TO STORE THE DATA
FILE CONCEPT => 2 THINGS 1. FILE -> CONTAINS THE DATA (FILE
-COLLECTION OF RECORDS
EACH SINGLE
RECORD ->COLLECTION OF FIELDS
-ACCOUNT-FILE:
A1111,ANIL,1000.00,100.00,B10933,S9191 R1 F1-
A11111,F2-ANIL
A1111,ANIL,1000.00,100.00,B10933,S9191 R2
A1111,ANIL,1000.00,100.00,B10933,S9191 R3
-CHANGES:
ID DIVISION. NO CHANGE
PROGRAM-ID. NAME.
AUTHOR. NAME.
DATE-WRITTEN. TODAY.
DATA DIVISION.
FILE SECTION. THIS IS IOUR SECOND CHANGE
FD FILE-NICK-NAME-1
LABEL RECORD ARE STANDARD.
01 ACCT-DETAILS-IN -RECORD LAYOUT/FILE
LAYOUT/LAYOUT
03 ACCT-NUMBER
..
FD FILE-NICK-NAME-2
LABEL RECORD ARE STANDARD.
01 ACCT-DETAILS-OUT.
03 ACCT-NUMBER
WORKING-STORAGE SECTION.
01 WS-STATUS-1 PIC X(02) VALUE SPACE.
01 WS-STATUS-2 PIC X(02) VALUE SPACE.
PROCEDURE DIVISION.
-> TO ANY - 3 STEPS
-> OPEN STATEMENT -> 1ST STEP - BEFORE WE ACCESS THE DATA
- WE MUST OPEN THE FOLE SUCCESSUFLL
1. DIFF OUTPUT & EXTEND MODE:- 1. OUTPUT MODE -> WE ARE USE
- NEW FILE -> RECORD WILL BE ADDED ON THE TOP.
2. EXTEND MODE -> WE ARE USING
'EXISTING FILE' - RECORD WILL ADDED TO BOTTOM ON FILE
REASON:-
FILE F1 -> ON DAY -> 1000.00
-> DEPOSIT --> UPDATE ON BAL -> F1
-> WITHEDARW => UPDATE ON BAL -> F1
--> -10 DAYS
-> FILE F1 -> CURENT BAL -> 1100.00
NEW NOTE BOOK --> WHILE UR OPENING ? -> WRITE -> CLOSE
CLOSE FILENAME1,FILENAME2.
2. ORGANIZATION ->
USED TO TELL - TYPE OF THE FILE & HOW THE DATA IS ARRANGE IN THE
FILE..
3. ACCESS MODE -> USED TO TELL - HOW TO ACCESS/GET THE DATA FROM FILE.
==> VALIDATION OF THE DATA -> 3 LEVEL 1. CHECK FOR PRENCSE OF THE DATA
(IF INPUT RECEIVED OR NOT) CARD-NUMBER -> SPACE??
2. RECEVIED INPUT -> IS IT IN REQUIRED FORMAT
-> CONTACT-NUMBER -> 9908 502 54 (10DIGT)
3. THE DATA WE GOT IS PRSENT IN MASTER
FILE/TABLE -> REFERENCE VALIADation
CLAIM-
REQUEST -> POLICY NUMBER
DUPLICATE:
1 C1111
2 C2222
3 C3333
4 C2222
5 C4444
6 C3333 --> OUT OF THESE 6 RECORDS -> WHICH RECORD ARE DUPLICATE -
> = 4 & 6
-<IF U GET THE FIRST -> CHECK FOR DUPLICATE -> NO CHECK
-> IF U GET SECOND -> HOW TO CHECK FOR DUPLICATE -> WE OVERIDE ON 1ST
RECORD.
GOBACK.
1000-INITIAL-PARA.
1. SET/RESET THE SWTICH VARIBALE MOVE 'Y' TO WS-SW-VAR OR
MOVE 'N' TO WS-SW-VAR.
2. INTITILIZE THE NUM & ALP-NUMERIC MOVE SPACE OR MOVE ZERO
1000-EXIT. EXIT.
2000-GET-INPUT-PARA.
1. GET THE INPUT 1. ACCEPT 2. FILE -READ STATEMENT
2. INCREASE THE COUNTER -> ADD +1 TO WS-IN-REC-CNT.
2000-EXIT. EXIT.
3000-PROCESS-PARA.
1. AUDIT THE DATA INPUT(VALIDATION) -3 LEVEL OF VALIDATION
2. APPLY THE BUINESS LOGIC 1. DATA FILTER 2. DATA CREATATION 3.
CALCUCATION
PERFORM 3100-GET-PREVI-BAL-PARA THRU 3100-EXIT
PERFORM 3200-CAL-CURR-BAL-PARA THRU 3200-EXIT
PERFORM 3300-CAL-FINAL-BAL-PARA THRU 330O-EXIT
3000-EXIT. EXIT.
-> IMP** > PARA -NUMBERING** => USED TO KNOW - PROGRAM FLOW.
-> ON A DAY -> ANIL IS SUPPORT -> JOB ABEND -> PGM P1 -> SPOOL ->SYSOUT
-> 'ERROR IN 3230-CAL-PARA'
--> ANIL -> SEE'S -> CONTROL -> 0000 - 3000 - 3200 - 3230 << CONTROL
MOVED IN PGM.
-> MAIN-PARA. 0000
1000-INITIAL
2000
3000--> 3100
3200 --> 3210 -> 3211,3212... 3213-1000
3220
3230 -> FAILED
COBOL PGM -> 3 IMP STATMENT -> 1. MOVE 2. IF COND 3. PERFORM *TODAY-
TOMORROW
--> PGM -> EXECUTION -> AS A DEVELOPER -> 2 WAYS TO COME OUT OF THE PGM
1. COMPLETE THE PGM SUCCESSFUL -> USE =EXIT CONTROL STATEMENT '1. STOP
RUN 2. GOBACK 3. EXIT PROGRAM
2. ABEND THE PGM -> IN CASE OF DATA ISSUE -> CALL 'ABENDPGM'
-->
1. STOP RUN -> USED TO SEND THE CONTROL OUT OF THE PGM , CONTROL WILL RETURN
BACK TO 'OS' -> MUST BE USED ONLY IN MAINPGM
2. EXIT PROGRAM -> USED TO SEND THE CONTROL OUT OF THE PGM , CONTROL WILL BE
RETURNED BACK TO 'MAINPGM' -> MUST BE USED ONLY IN SUBPGM
3. GOBACK -> USED TO SEND THE CONTROL OUT OF THE PGM. ==> GOBACK CAN BE USED
IN ANY PGM --> PREFFER THIS IN ALL OUR PROJECT PGM
==> WE CAN CODE THE EXIT STATMEENT (STOP RUN , GOBACK ,EXIT PROGRAM) -IN ANY WHERE
IN THE PGM
-> MUST BE CODED ONLY 1 TIME.
==? Q1 -> CODE THE COBOL PGM ->COMPILE THE PGM - ?? WHY DO WE COMPILE ==> CONVERT
THE SRC TO MACHINCE -> WHY DO U WANT TO CONVERT? MACHINCE -LOAD.
==> Q2 -> CODE THE RUNCJL JOB -> SUBMIT-EXECUTING -> Q1 -> HOW THE MACHINCE CAN
UNDERSTAND JCL ENG??
=> CODE RUN JCL -> SUBMIT -> JES -> 1. CHECK UR JCL CODE -> MISTAKES -> 'JCL
ERROR'
2. NO MISTAKES -> STEPLIB --> PICK THE LOAD UR PGM ->
HAND LOAD TO 'OS'
= JCL -> SUBMIT -> JES -:<LOAD (PGMA) -> OS ->(PGMA -S1,S2,S3..--PGMB(S1,S2,S3 -
STOP RUN) --> OS --> INCORRECT. CONTROL SHPOIULD GO TO MAINPGM
--
-> JCL 0> SUBMIT -> JES -> LOAD (PGMA) -> OS -> PGMA -S1,S2,S3 -PGMB (S1,S2,S3 -
EXIT PROGRAM) -> PGMA(S4,S5-STOP RUN) -> OS - JES -> MAXCC=00
==3RD CASE:
->
? JCL -> SUBMIT -> JES -> LOAD (PGMA) -> OS ->(PGMA -S1,S2,S3 -> GOBACK) --> OS**
(LIKE STOP RUN)
? JCL -> SUBMIT -> JES -> LOAD (PGMA) -> OS -> (PGMA S1,S2,S3 - PGMB -S1,S2,S3 -
GOBACK---> PGMA -S4,S5=GOBACK) --> OS - JES - MAXCC=00
PGM. S1 PGM S1
S2 S3
GOBACK GOBACK
S3 -> THIS FELLOW? S2
-1. PERFORM
-2. GO TO
-3. EXIT
--->
PERFORM STATEMENT *THORY -BOOK POINT:-
> INLINE PERFORM: THE LOGICAL STATEMENT(S1,S2) -> ARE CODED WITHIN PERFORM -
END-PERFORM STATEMENT
-> S1,S2 CANNOT BE EXECUTED/REUSED -FROM ANY
PART OF THE PGM
SYNTAX: PERFORM
S1
S2
END-PERFORM.
> OUTLINE PERFORM > THE LOGICAL STATEMENT (S1,S2) ARE CODED IN PARAGRAPHS (X-
PARA) - CONTROL IS PASSED USED 'OUTLINE PERFORM'
=> S1,S2 -> CAN BE EXECUTED -AGAIN FROM ANY WHERE
PROGRAM.
X-PARA.
S1
S2.
PERFORM X-PARA.
==> PERFORM > IS ALSO USED FOR LOOPING** -> EXECUTE THE SAME CODE MULTIPLE TIMES
WE CALL THIS AS LOOP
X-PARA.
S1,S2.
Y-PARA.
S3,S4.
Z-PARA.
S5,S6.
-> PROJECT EX:
-> IN UR PGM -> FOR EACH LOGICAL CODE -> CODE 2 PARAGRAPHS
1000-PROCESS-PARA.
S1
S2
S3.
1000-EXIT. EXIT.
EX:**
01 WS-I PIC 9(02) VALUE ZERO.
P.D.
PERFORM UNTIL WS-I > 10 0>10(F) 1>10(F) 9>10 10>10 (F)
11>10(T) -EXIT
DISPLAY WS-I 0 1 9 10
ADD +1 TO WS-I 0+1=1 1+1=2 9+1=10
10+1 = 11
END-PERFORM.
O/P: 0-10
P.D.
PERFORM UNTIL WS-I < 10 0 < 10 (T) -> EXIT THE LOOP
DISPLAY WS-I
ADD +1 TO WS-I
END-PERFORM.
O/P: -> NOTHING
1. U CODE THE LOOP -> LOOP SHOULD START -> COND MUST BE FALSE
2. IF LOOP ALREADY STARTED -> MAKE SURE -> LOOP STOP SOME WHERE.
P.D.
PERFORM UNTIL WS-I > 100 0 > 100(F) ... 99>100(F) 00>100(F)
1>100(F)....99>100(F)
DISPLAY WS-I 0 99 00
99
ADD +1 TO WS-I 0+1 = 1 99+1=00 0+1=1
99+1=00
END-PERFORM.
O/P?: ->1. 0-100
2.LOOP -- RIGHT
3. 0-99
4. 0-100
-->LOGICAL LOOP **
DEV-2 --> ACCEPT IF MOVE DISPLAY ACCEPT IF MOVE DISPLAY ACCEPT IF MOVE
DISPLAY => ALL OVER -> RIGHT
ANIL -----MR,ANIL ARUN......... MR.ARUN
RANI..........MRs.RANI
IF - 3 SYNTAX:
SIMPLE IF: STATEMENT S1
IF CONDITION
T- S2,S3
END-IF.
S4
COND - TRUE -> S1 - S2 -S3 - S4
FALSE -> S1 - S4
2> IF-ELSE S1
IF CONDITION
T-S2,S3
ELSE
F-S4,S5
END-IF.
S6 COND -TRUE -> S1 - S2,S3 - S6
FA -> S1 - S4,S5 - S6
> CONTINUE -> THE SYSTEM WILL MOVE THE CONTROL TO NEXT STATEMENT - WHICH COME
AFTER -'NEAREST END-IF'
> NEXT SENTENCE -> THE SYSTEM WILL MOVE THE CONTROL TO NEXT STATEMENT - WHICH
COME AFTER 'NEAREST DOT'
EX:
Q1: IN PGM P1
3 LINES OF CODE
ACCEPT VARA.
ACCEPT VARB
ACCEPT VARC. -Q? HOW MANY STATEMENT? 3 STATEMENT
HOW MANY SENETANCE? 2 SENTENCE (CAN HAVE
1 OR MORE STATEMENT END WITH A DOT)
S1
IF COND-1
S2
S3
IF COND-2
- NOTHING 1. CONTINUE 2. NEXT SENTENCE
ELSE
S4,S5
END-IF
S6 - HERE -CONTINUE
ELSE
S7
END-IF.
S8 -HERE NEXT SENTENCE.
Q2: S1
IF CONDITION-1
-NOTHING ?? WHAT I NEED CODE> CONTINUE / NEXT SENTENCE
ELSE
S2,S3
END-IF.
S4 << TO GET THE CONTROL HERE
-- ABOVE IS BOOK POINT -- BELOW IS PROJECT VIEW:-
ID DIVISION.
PROGRAM-ID. CUSTPGM1.
AUHTOR. NAME.
DATE-WRITTEN. TODAY.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUST-DETAILS-IN.
03 CUST-ID PIC X(05).
03 CUST-NAME PIC X(10).
03 CUST-GENDER PIC X(10).
01 CUST-DETAILS-OUT.
03 CUST-ID PIC X(05) VALUE SPACE.
03 CUST-TITLE PIC X(03) VALUE SPACE.
03 CUST-NAME PIC X(10) VALUE SPACE.
03 CUST-GENDER PIC X(10) VALUE SPACE.
PROCEDURE DIVISION.
000-MAIN-PARA.
DISPLAY 'CUSTPGM1 STARTED'.
STOP RUN.
--> CODE -> COMPILE -> LOAD
--TEST RUN JCL
//IBMUSERX JOB NOTIFY=&SYSUID
//STEP1 EXEC PGM=CUSTPGM1
//STEPLIB DD DSN=IBMUSER.T8.LOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
C1111 C2222
ANIL RANI
MALE FEMALE
/*
//
EXPECTED O/P -> CUSTPGM1 STARTED CUSTPGM1 STARTED
C1111 MR ANIL MALE C2222 MRs RANI FEMALE
CUSTPGM1 -> COMPILED -> TESTED -ALL ARE GOOD -> SHALL WE MOVE THIS
CODE IN PRODUCTION**
-
CUSTPGM2:
PROCEDURE DIVISION.
000-MAIN-PARA.
DISPLAY 'CUSTPGM2 STARTED'.
STOP RUN.
--> LOGIC & PERFORMNACE <-- CHOOSE ONE?? -> LOGIC IS IMPORTANT
ID DIVISION.
PROGRAM-ID. CUSTPGM3.
AUHTOR. NAME.
DATE-WRITTEN. TODAY.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUST-DETAILS-IN.
03 CUST-ID PIC X(05).
03 CUST-NAME PIC X(10).
03 CUST-GENDER PIC X(10).
01 CUST-DETAILS-OUT.
03 CUST-ID PIC X(05) VALUE SPACE.
03 CUST-TITLE PIC X(03) VALUE SPACE.
03 CUST-NAME PIC X(10) VALUE SPACE.
03 CUST-GENDER PIC X(10) VALUE SPACE.
PROCEDURE DIVISION.
000-MAIN-PARA.
DISPLAY 'CUSTPGM3 STARTED'.
STOP RUN.
CUSTPGM1 -> 10 RECORD -> 20 TIMES -> POOR --> LOGIC IS NOT CORRECT
-> NO TO PROD
CUSTPGM2 -> 10 RECORD -> 10 TIMES -> BEST LOGIC IS VERY BAD
-> NO TO PROD
CUSTPGM3 -> 10 RECORD -> 14/16 TIMES -> GOOD LOGIC IS CORRECT
=> YES TO PROD.
IN COBOL -> VOWEL** -> 3 STATEMENT -> USED IN EACH AND EVERY
SINGLE COBOL PGM
--> COMPILATION -> WE USE TOOL 1. EDIT THE PGM 2. COMPILE THE PGM -=>
VERSION CONTROL TOOL
-> EDITING THE PGM -> F3 & ENTER -> COMPILER JOB
SUBMITED BY THE TOOL** -> MAXCC=00??
====>
MOVE STATEMENT**:-
--> USED TO PASS THE DATA TO A VARIBALE WITHIN THE PGM
-> VARIBALE -> WE GET DATA FROM OUTSIDE OF THE PGM (USING INPUT STATEMENT)
|
TO PASS THE DATA TO ANOTHER VARIBALE << MOVE STATEMENT.
POINT #1:
HOW MOVE STATEMENT - BEHAVIUS.:
ANILb = ANILbb > equal or not? -> MATCHING -> ANY SPACE
RIGHT SIDE ARE IGNROED IN COMPARSION
ANILbKUMAR = ANILbbKUMAR -> NOT MATCHING
VAR-VALUE -> ANIL = anil -> same
'ANIL' = 'anil' -CONSTANCT -> NOT SAME.
POINT #2
-WHEN TO USE THE MOVE IN PGM**
1. SWTICH VARIBALE. -> USED FOR CONDITION & CONTROLING THE PGM
-> IN ANY PGM -> DEFINE THE VAIRBALE 2 SETS 1. INPUT VARIBALE ->
RECEVIE THE INPUT DATA + UNDER GO THE PROCESS LOGIC
2. OUTPUT VARIBALE. -> MOVE THE
DATA INPUT -> OUTPUT -> SEND IT OUT
==> EXAMPLE:
MOVE A TO B.
MOVE A TO B ,C.
MOVE 10 TO A B.
MOVE 'ANIL' TO A.
----
MOVE A TO 10. --> INVALID -> TARGET SHOULD A VARAIBLE.
MOVE A TO A. -> INVALID -> SYSTEM WILL ERROR - IN COMPILATION A
IS NO UNQIUE
--
====
CODE A PGM 1. DEFINE THE 10 BUSINESS VARIABLE RELATED TO CLAIM APPLICATION
*(INPUT - OUTPUT GROUP)
2. ACCEPT THE 10 INPUT VARIABLE
3. MOVE THE DATA - IN - OUT VARIABLE
4. DISPLAY THE CLAIM DETAILS
SPOOL: O/P
1. CLAIM NUMBER............ C11111
2. CLAIM STATUS............. APPROVED
..
10 VARIABLE.
1. CODE A SIMPLE PGM -> TO ADD 2 NUMBER -> DISPLAY THE TOTAL.
PGM P1 -> 1. VARIBALE REQUIRED -> 3 2 INPUT -> NUM1 & NUM2 -
OUTPUT -> TOTAL.
2. GET THE DATA AS INPUT -> ACCEPT
3. CALUCATION
-> ADD , SUBTRACT, MULTIPLY DIVIDE -> STATEMENT
-----
POINT #1 -> MAXCC=00 -> SUCCESSFUL COMPILATION
04 -> SUCCESSFUL + WARNING --> IGNORE
---
COBOL PGM ERROR == 08/12 -> ERROR - FIX AND RE-COMPILE.
--> NEW DEV-1 -> CODING A COBOL PGM -> 100 LINES --> IS THERE ANY CHANCE
HE MAKE A MISTAKE ==> YES
--> ANIL AS TRAINER / DEV -> 13 YEAR -> 1000 LINES --> IS THERE ANY CHANGE
HE MAKE A MISTAKE --> YES
POINT #2:-
DEV-1 -> CODE THE RUN JCL -> ANY CHANCE OF MAKING MISTAKE ==> YES
POINT #3:-
=>ALAYS => LOGIC PGM & DATA => NEED TO SPREATED.
-> WE CANNOT KEEP THE DATA IN THE PGM
--> WE NEED TO GET THE INPUT FROM THE OUT SIDE THE PGM
POINT 4#:-
-->
ANIL IS SUPT APPLICATION -> DAILY 500 JOB WILL RUN
DAY-1 -> ALL 500 JOB EXECUTE - RAN SUCCESSFUL --> WILL ANIL OPENS ALL
THE JOB LOG AND VERIFY?? NO
DAY-2 -> 500 JOB EXECUTE - SECUESSFUL -> WILL ANUL OPEN ANY
LOGS? NO
-
DAY-3 -> OUT OF THESE 500 JOB - 1 JOB ABEND (SMALL NOT SO IMP) - DO
ANIL NEED TO CHECK . IT. -> YES.
-> COBOL -> DATA PROCESSING -> IN CASE OF ANY DATA TRUCATION --> COBOL
IGNORE THAT -> MAXCC=00
O/P::
ERROR IN COMPUTE STATEMENT
INPUT IS NUM1 50 NUM2 50
2. ON SIZE ERROR + RETURN-CODE -> USED TO CHANGE THE MAXCC
CODE. - GOOD SOLUTION
STATEMENT-1
2
S3
S4 -> DATA GOT CORRUPTED HERE ITSELF 1. DO U LIKE TO
CONTINUE THE DATA PROCESSING
.. 2. OR WOULD U LIKE TO
STOP THE PROCESS.
..
S10
3. ON SIZE ERROR + DISPLAY + ABEND THE PGM** ABEND -> ABNORAL END
-> BEFORE WE GET OUR PGM DATA -> WE NEED TO CLEAN THE MEMORY SPACE.
-> IN COBOL -> WE CAN DO INTIALIZING IN 3 WAYS:
-
01 SWITCH-VAR PIC X(01) VALUE --> ON/OFF - YES/NO -
O/1 - TRUE/FALSE. SPACE.
BOOK TOPIC:
-> ACCEPT STATEMENT -> USED TO GET THE DATA AS INPUT FROM THE JCL -JOB.
2. SIGNED NUMERIC
S9(04). -> SIGN
WILL BE STORED AS LETTER ON THE LAST BYTES
+1234 = 123D
3. DECIMAL S9(3)V9(02). >
+123.45 -> INVALID
>
1234E -> VALID (NO DOT ALLOWED)
--> PROJECT POINT: -> Q? CAN I AS DEVELOPER - PROVIDE - SALES DATA AS INPUT
THRU JCL**
| -CUSTOMER DETAILS - JCL**
--> APPLICATION=A -> 100 COBOL-PGM -> MAY BE 3/4 PGM -WILL HAVE ACCEPT
STATEMENT**
==>
OUTPUT STATEMENT -> DISPLAY
-> USED TO PRINT THE MESSAGE AND THE VARIBALE VALUE -> INTO THE
SPOOL
EX:
DISPLAY 'CUSTOMER NAME IS' O/P -> CUSTOMER NAME IS
DISPLAY CUST-NAME. O/P -> ANIL KUMAR
DISPLAY 'CUSTOMER NAME IS ' CUST-NAME. O/P > CUSTOMER
NAME IS ANIL KUMAR.
-> APPLICATION -A -> 100 COBOL PGM -> OUT OF 100 PGM -> HOW MANY WILL USE
THIS DISPLAY? --> 100 PGM WIL USE.
==> ANIL IS IN SUPT ROLE -> RESP > HE NEED TO FIX ANY ISSUE THAT COME
> ON A DAY - ANIL -> JOB ABEND -> TO THE FIX ISSUE
1. FIND THE ERROR IN THE PGM P1 --> 3000 LINE OF CODE ==> HOW MUCH
UR NEED TO ANLSYSIS A 3000 LINE - FIND THE MISTAKE? 1 DAY
2. FIND THE ERROR RECORD IN FILE -> 1 MILLION RECORDS ==> HOW MUCH TIME
WE NEED FINE 1 BAD RECORD -> 1 MONTH
TICKET: ACK-TIME/RESPONSE -
RESOLUTION
P1 -> URGENT 15MIN 2/4
HR
P2 -> HIGH 15MIN
4/8 HR < SAME DAY
P3
P4
IN THE PGM -> DEVELOPER -> WHEN HE WANT TO ABEND THE PGM *BAD DATA
PROCEDURE DIVISION.
DISPLAY 'PGMNAME STARTED'.
==> CODE THE SIMPLE COBOL PGM -> DIVISION SECTION PARA -STATEMENT
--> DEFINE THE VAIRBALE.
--> INITLIZE THE VARIBALE + ACCEPT + DISPLAY
1. CODE THE COBOL PGM --> 2. COMPILE THE PGM -LOAD 3. CODE THE TEST
RUNJCL EXECUTE.
VARIBALE -> TEMPORARY MEMORY SPACE -WITHIN THE PGM - USED TO STORE & PROCESS THE
DATA
REAL DATA -> FILE/TABLE**(MILLION RECORDS) -- GET 1 RECORD -> PGM (VARIBALE -
STORE + PROCESS- SEND IT ) --> FILE/TABLE(PROCESSED DATA)
EX:- VAR-A
VAR-B -> WE CANNOT TELL THE TYPE BY NAMES
-> SYSTEM ALSO -> CANNOT DECIDE THE TYPE BY NAME.
LEVEL-NUMBER -> IN COBOL - ALL THE VARIBALE MUST BE PREFIXD WITH A LEVEL NUMBER
-> USED TO TELL THE STRUCTURE OF THE DATA RECORDS
-> 77 -> ONLY ELEMENTARY -> IGNORE IT -> USE ALWAYS 01.
-> 66 * 88 -> LATER.
01 ACCT-DETAILS.
03 ACCT-NUMBER PIC X
03 CUST-NAME PIC X
03 CUST-ADDRESS.
05 CITY PIC X
05 STATE PIC X
05 PINCODE PIC X
03 ACCT-BAL PIC S-9-V
03 ACCT-TYPE PIC X
03 ACCT-OPEN-DATE PIC X
03 ACCT-CLOSE-DATE.
05 YYYY PIC 9
05 MM PIC 9
05 DD PIC 9
03 ACCT-STATUS PIC X
-> DEV-1 -> CODED A PGM P1 -> 2010 IN THE PGM HE DEFINED SOME VAIRBALE..
-> 2023 -> WE JOINED THE PROJECT -> ASKED -ANALYSIS THE PGM P1
-> 2023 -> WE JOINED THE PROJECT -> ASKED -ANALYSIS THE PGM P2
-
-> CLAIM-STATUS -> --EASY TO UNDERSTAND.
3. PIC -> USED TO PROVIDE THE DATA-TYPE & SIZE FOR A ELEMENTARY VARIBALE
|
PICTURE
DATA-TYPE -> TELL -> WHAT KIND OF DATA -IS STORED IN THAT VARIBALE.
NUMERIC -> ALLOW -> 0-9 => ALP -> A-Z SYMBOL ==> ALP=NUM =-> 0-9 & A-
Z -SPACE.
EX:
->NUMERIC: -9
VALUE 123 PIC 9(03) 9 -NUMERIC DATA ,
03 MEMORY ALLOCATION
VALUE +/-123 PIC S9(03) S- SIGEN
NUMBEIC = 9 - 03 MEMORY
VALUE +/-123.45 PIC S9(03)V9(2) S - SIGNED - V-
ASSUMED DECIMAL
-> ALP-NUMERIC
X VALUE ANIL PIC X(04)
VALUE 1234 PIC X(04).
VALUE ANIL1234 PIC X(08)
PONIT#:IF THE DATA IS INVLOVED IN CAL -> THEN IT WILL BE NUMERIC -- IF NOT
ALP-NUMERIC.
->DEVELOP -> CODE THE PGM** -> FOR THEM - PGM IS THE MOST IMPORTANT ->
WRONG
---------
DATA = IS MORE IMPORTANT:
1. ALWAYS INCREASE
2. NO DUPLICATE
POINT#3
DATES** -> SOME THEY ARE DISPLAY
=> X
SOME OF THEM ARE CALUCATION -> AGE OF THE CUSTOMER. , EMI
DUE , POST BILL DATE =>9
2. CALUCATION
EACH DAY -> HAVING 1 CLAIM TO PROCESS -> CAN I DO IT MANUALLY? -> YES
100 YES MANUAL
-
1000000 million -1. MAY BE ISSUE -> TIME CONSUION
MANUL ERROR
-->
-> WE AS HUMAN CAN PROCESS SOME AMT OF DATA
-> AS PROJECT -> DAILY -WE GET MILLION OF RECORD TO PROCESS
-> FOR THIS WE NEED A MACHINE -> MAINFRAME
-> COBOL IS ALWAYS LENGTH -> SMALL LOGIC -> 300 LINES CODE
GOOD PROJECT LEVEL -> 3000 LINE CODE.
DIVISION
SECTION
PARAGRAPHS
STATEMENT --> INSTRUCTION TELLING THE SYSTEM WHAT TO DO.
ADD -STATEMENT
READ FILE -> STATEMENT
EX: ANILPGM1 , ANILPGM2 --> ARE THESE VALID NAME? -> YES
CAN I USE THIS NAMING STYLE IN MY PROJECT ->
NO
-> PROJECT -> APPLICATION-A --> Z1YNnnnn -> NEW PGM -> Z1YN1881 -->
Z1YN0 -> KINDS , Z1YN1.. , Z1YN2..
APP- B --> Z1YEnnnn -> NEW PGM -> Z1YE1881
--> ENVIRONMENT DIVISION:- -> USED TO DEFINE THE FILES REQUIRED IN THE PGM (IF
ANY)
-> IN SOME PGM DO NOT HAVE A FILE -> THIS DIVISION IS OPTIONAL**
VARIBALE: IN THE PGM -> IS TEMP MEMORY SPACE - USED TO STORE AND PROCESS THE
DATA
4. PROCEDURE DIVISION:-
1. CONTAINS THE PGM LOGIC + CAL => TO PROCESS THE DATA
2. IN THIS DIVIISON - WE DO NOT HAVE ANY PRE-DEFINED
SECTION/PARAGRAPHS
3. AS A DEVELOPER -> WE CAN DEFINE OUR OWN SECTION.
->
-> EX: LET US GO TO A MOVIE (NEW MOVIE) -< ALL OF GET THE
SCREEN/AUDIT ->MOVIE START
1. TITLE -> ENJOY
2. CAST -. HER/HERION - HAPPY
3. TECH -> MUSIC , DIRECT ,
PRODUCER
4. OPENING SCENE -> LET US - COME
OUT OF THE MOVIE
-> HAPPY / ANGRY -> WHY UR ANGRY? -> MISS THE WHOLE STORY
-->
ID DIVISION. PGM NAME *TITLE
ENVIRONEMENT. FILE NAME (CAST)
DATA DIVISION. VARIBALE NAME (TECH)
--
PROCEDURE DIVISION --> WHOLE STORY - 80% WORK LOAD
- STATMENTS => INSTRUCTION TO
SYSTEM HOW TO PROCESS THE DATA
12-72 -> AREA-B -> CODE THE STATEMENT ( U BREAK A STATEMENT INTO MANY LINES)
1 8 12
ID DIVISION.
PROGRAM-ID. CBLPGM01.
AUTHER. NAME.
DATE-WRITTEN. TODAY.
ENVIRONMENT DIVISION.
INPUT-OUTOUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
PROCEDURE DIVISION.
000-MAIN-PARA.