View previous topic :: View next topic
|
Author |
Message |
prasannadhabe
New User
Joined: 26 May 2003 Posts: 4 Location: Delhi
|
|
|
|
My requirement is to create the dataset (if possible GDG) through the cobol code.can anyone please tell me how to do it.? |
|
Back to top |
|
|
mdtendulkar
Active User
Joined: 29 Jul 2003 Posts: 237 Location: USA
|
|
|
|
Hello prasannadhabe,
Below is the program you can write to create a GDG in a cobol program.
Hope this helps.
-------------------------------------------------------------------------------------
IDENTIFICATION DIVISION.
PROGRAM-ID. MYPROG.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OUTFILE ASSIGN TO OTFILE.
FILE SECTION.
FD OUTFILE
RECORD CONTAINS 80 CHARACTERS
LABEL RECORDS ARE OMITTED
DATA RECORD IS OT-REC.
01 OT-REC PIC X(80)
01 WS-JCL-AREA.
05 WS-JOBCARD.
10 FILLER PIC X(20) VALUE
'//JOBNAME JOB 0,'''.
10 FILLER PIC X(10) VALUE 'NOTIFY'.
10 JCL-JOBNAME PIC X(10) VALUE SPACES.
10 FILLER PIC X(60) VALUE
''',MSGCLASS=Y,CLASS=D '.
10 FILLER PIC X(02) VALUE SPACES.
05 WS-JOBLIB.
10 FILLER PIC X(60) VALUE
'//JOBLIB DD DSN=<JOBLIB NAME>,DISP=SHR'
05 WS-UTILITY.
10 FILLER PIC X(60) VALUE
'// UTILITY EXEC PGM=IDCAMS'
05 WS-STATEMENTS.
10 .....WRITE THE GDG CREATE STATEMENTS HERE
01 INTRDR-CONTROL PIC X(80) VALUE SPACES.
01 WS-SUB PIC 9(3) value + 0.
PROCEDURE DIVISION.
PERFORM VARYING WS-SUB FROM 1 BY 1 UNTIL WS-SUB > N **** Here N is the numbe rof 05 level statements.
MOVE WS-JCL-AREA(WS-SUB) TO INTRDR-CONTROL
WRITE OT-REC FROM INTRDR-CONTROL
END-PERFORM.
CLOSE OUTFILE.
In the jcl code it as
Code:
//STEP1 EXEC PGM=MYPROG
//*
//OTFILE DD SYSOUT=(A,INTRDR)
-------------------------------------------------------------------------------------
Hope this helps
Regards
Mayuresh Tendullkar |
|
Back to top |
|
|
prasannadhabe
New User
Joined: 26 May 2003 Posts: 4 Location: Delhi
|
|
|
|
Thanks For your help. Mr. Tendulkar..... |
|
Back to top |
|
|
Prandip
New User
Joined: 04 Mar 2005 Posts: 84 Location: In my tiny cubicle ...
|
|
|
|
This is another way it might be done. Forgive the crudeness, I'm not a programmer.
Code: |
IDENTIFICATION DIVISION.
PROGRAM-ID. MYPROG.
INSTALLATION.
AUTHOR. PRANDIP.
DATE-WRITTEN. 1/20/2006.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO UT-S-SYSUT1
ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE
LABEL RECORD STANDARD
BLOCK 0 RECORDS
RECORDING MODE F
RECORD CONTAINS 80 CHARACTERS.
01 INPUT-RECORD PIC X(80).
WORKING-STORAGE SECTION.
01 FILLER.
05 WS-DUMMY PIC S9(8) COMP.
05 WS-RETURN-CODE PIC S9(8) COMP.
05 WS-REASON-CODE PIC S9(8) COMP.
05 WS-INFO-CODE PIC S9(8) COMP.
05 WS-CPPL-ADDRESS PIC S9(8) COMP.
05 WS-FLAGS PIC X(4) VALUE X'00010001'.
05 WS-BUFFER PIC X(256).
05 WS-LENGTH PIC S9(8) COMP VALUE 256.
01 ALLOCATE-NEW-DSN.
05 FILLER PIC X(16) VALUE 'ALLOC DD(SYSUT2)'.
05 FILLER PIC X(4) VALUE ' DA('.
05 FILLER PIC X VALUE "'".
05 WS-DATASET-NAME PIC X(23)
VALUE 'PRANDIP.MY.GDG.G0001V00'.
05 FILLER PIC X VALUE "'".
05 FILLER PIC X(17) VALUE ') NEW REU CATALOG'.
05 FILLER PIC X(30) VALUE ' SPACE(100,100) TRACKS RELEASE'.
05 FILLER PIC X(21) VALUE ' RECFM(F B) LRECL(80)'.
PROCEDURE DIVISION.
CALL 'IKJTSOEV' USING WS-DUMMY WS-RETURN-CODE WS-REASON-CODE
WS-INFO-CODE WS-CPPL-ADDRESS.
IF WS-RETURN-CODE > ZERO
DISPLAY 'IKJTSOEV FAILED, RETURN-CODE=' WS-RETURN-CODE
' REASON-CODE=' WS-REASON-CODE 'INFO-CODE=' WS-INFO-CODE
MOVE WS-RETURN-CODE TO RETURN-CODE
STOP RUN.
MOVE ALLOCATE-NEW-DSN TO WS-BUFFER.
CALL 'IKJEFTSR' USING WS-FLAGS WS-BUFFER WS-LENGTH
WS-RETURN-CODE WS-REASON-CODE WS-DUMMY.
DISPLAY WS-BUFFER.
IF WS-RETURN-CODE > ZERO
DISPLAY 'IKJEFTSR FAILED, RETURN-CODE=' WS-RETURN-CODE
' REASON-CODE=' WS-REASON-CODE
MOVE WS-RETURN-CODE TO RETURN-CODE
STOP RUN.
MOVE ZEROS TO RETURN-CODE.
STOP RUN.
|
|
|
Back to top |
|
|
|