このサンプル プログラムは、MVSCASPB API を使用してさまざまなデータのサブセットを取得し、返されたデータを出力ファイルに書き込みます。
identification division.
program-id. Program1.
environment division.
configuration section.
input-output section.
file-control.
SELECT ASCII-FILE
ASSIGN TO ASCII-DSN
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS ASCII-FILE-STATUS.
data division.
FILE SECTION.
FD ASCII-FILE
LABEL RECORDS STANDARD.
01 ASCII-DATA PIC X(80).
working-storage section.
01 ascii-file-status pic xx.
01 ascii-dsn pic x(250).
01 disp-rc pic 9999.
01 disp-rsn pic 9999.
01 disp-type pic Z9.
01 disp-job-nbr pic 9(9). *> Increased to allow for
*> 7 digit numbers
01 disp-cc.
03 disp-cc-type pic x(01).
03 disp-cc-nbr pic 9(04).
01 save-job-name pic x(8).
01 save-job-nbr pic x(4) comp-x.
01 ws-pb-get-version pic 9(04).
01 ws-pubcas-spl-format pic x(01) comp-x.
88 ws-SPL-FORMAT-1 VALUE 1.
*> 5 digit casspool.dat
88 ws-SPL-FORMAT-2 VALUE 2.
*> unused
88 ws-SPL-FORMAT-3 VALUE 3.
*> restructed spljob
88 ws-SPL-FORMAT-4 VALUE 4.
88 ws-SPL-FORMAT-5 VALUE 5.
01 ws-idx1 pic x(04) comp-5.
01 pubcas-area.
copy "mfpubcas.cpy" replacing ==()== by ==pubcas==.
procedure division.
*> specify were the output should be written
move '$outdir/output.txt' to ASCII-DSN
open output ascii-file
if ascii-file-status <> '00'
display 'open output failed ' ascii-file-status
goback
end-if
perform get-messages *> type 6
perform get-o-hold *> type 7
perform get-ds-hold *> type 9
perform get-ds-out *> type 10
*> With the new spool control files (ws-SPL-FORMAT-3)
*> there aren't any type 7 or 8 records.
*> So next 4 methods will not return any records.
*> Use type 9 and 10 (as above)
perform get-o-hold-type-jobname *> type 7 by job name
perform get-o-hold-type-create-date *> type 7 by date
perform o-spool-files-jobname *> type 8 and associated
*> type 10s
perform o-held-spool-files-jobname *> type 7 and associated
*> type 9s
if ws-SPL-FORMAT-3
*> we are using the new spool control file format
*> so we can ask for completed jobs
perform get-completed-jobs *> type 20
end-if
display 'test prog ended '
goback.
o-held-spool-files-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Jobs with held output spool files ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
*> loop through the type output records to find jobs with
*> output spool files
perform until pubcas-retcode <> 0
or pubcas-type <> pubcas-o-hold-78
*> for each o-hold record
*> print details
*> save key
*> get associated output spool records (ds-hold)
*> reposition for next o-hold record
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move pubcas-job-name to save-job-name
move pubcas-job-nbr to save-job-nbr
move low-values to pubcas-area
move 78-KEY-IS-job-NUMBER
to pubcas-key-id
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode <> 0
or pubcas-job-nbr <> save-job-nbr
*> all the output spool files for this job
if pubcas-type = pubcas-ds-hold-78
move spaces to ascii-data
string
' ' delimited by size
pubcas-SYSOT-STEP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-PSTP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-DD-NAME delimited by size
into ascii-data
perform write-outfile
end-if
perform call-pubcas
end-perform
*> reposition on the next job name that has a type 8 record
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move pubcas-o-hold-78 to pubcas-type
move save-job-name to pubcas-job-name
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
*> get next next job
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
if pubcas-job-name = save-job-name
and
pubcas-job-nbr = save-job-nbr
*> STGT and GN gets the same type 8
*> record ( duplicate keys allowed )
*> so need a second GN to get the next record
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-if
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
o-spool-files-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Jobs with output spool files ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-out-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
*> loop through the type output records to find jobs with
*> output spool files
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-out-78
or pubcas-rsncode = 78-EOF
*> for each o-hold record
*> print details
*> save key
*> get associated output spool records (ds-hold)
*> reposition for next o-hold record
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move pubcas-job-name to save-job-name
move pubcas-job-nbr to save-job-nbr
move low-values to pubcas-area
move 78-KEY-IS-job-NUMBER
to pubcas-key-id
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode <> 0
or pubcas-job-nbr <> save-job-nbr
*> all the output spool files for this job
if pubcas-type = pubcas-ds-out-78
move spaces to ascii-data
string
' ' delimited by size
pubcas-SYSOT-STEP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-PSTP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-DD-NAME delimited by size
into ascii-data
perform write-outfile
end-if
perform call-pubcas
end-perform
*> reposition on the next job name that has a type 8 record
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move pubcas-out-78 to pubcas-type
move save-job-name to pubcas-job-name
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
*> get next next job
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
if pubcas-job-name = save-job-name
and
pubcas-job-nbr = save-job-nbr
*> STGT and GN gets the same type 8
*> record ( duplicate keys allowed )
*> so need a second GN to get the next record
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-if
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold-type-create-date section.
move spaces to ascii-data
perform write-outfile
move 'By Type and Date - hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-date
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode <> 0
or pubcas-type <> pubcas-o-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold-type-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Type and Job Name - o-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-o-hold-78
or pubcas-rsncode = 78-EOF
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-ds-out section.
move spaces to ascii-data
perform write-outfile
move 'By Type - ds-out ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-ds-out-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-ds-out-78
or pubcas-rsncode = 78-EOF
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-sysot-job-name
delimited by size
',' delimited by size
pubcas-sysot-step-name
delimited by size
',' delimited by size
pubcas-sysot-pstp-name
delimited by size
',' delimited by size
pubcas-sysot-dd-name
delimited by size
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold section.
move spaces to ascii-data
perform write-outfile
move 'By Type - o-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-o-hold-78
or pubcas-rsncode = 78-EOF
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name delimited by size
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-ds-hold section.
move spaces to ascii-data
perform write-outfile
move 'By Type - ds-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-ds-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-ds-hold-78
or pubcas-rsncode = 78-EOF
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-sysot-job-name
delimited by size
',' delimited by size
pubcas-sysot-step-name
delimited by size
',' delimited by size
pubcas-sysot-pstp-name
delimited by size
',' delimited by size
pubcas-sysot-dd-name
delimited by size
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-messages section.
move 'Messages ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-mesg-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode <> 0
or pubcas-type > pubcas-mesg-78
move pubcas-type to disp-type
if pubcas-msglg-mesg-length > 256
move 256 to pubcas-msglg-mesg-length
end-if
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
pubcas-msglg-mesg(1:pubcas-msglg-mesg-length)
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-completed-jobs section.
move spaces to ascii-data
perform write-outfile
move 'Completed Jobs' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-JOB-COMPLETED-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
IF pubcas-RETCODE > ZERO
EXIT SECTION
END-IF
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 4
or pubcas-type <> pubcas-JOB-COMPLETED-78
or pubcas-rsncode = 78-EOF
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
move 1 to ws-idx1
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-JOB-NAME delimited by size
',' delimited by size
pubcas-REC-CLASS delimited by size
into ascii-data with pointer ws-idx1
*> If the COND-CODE value has a type indicator
*> and exceeds 3 digits in value, e.g. U2052
*> then, because of the limitation in space in the
*> pubcas-INPUT-COND-CODE field, the
*> pubcas-INPUT-CC-TYPE and pubcas-INPUT-CC-NUM
*> format is used.
if pubcas-rec-type-input-88
if pubcas-INPUT-CC-TYPE > x'f0'
evaluate true
when pubcas-INPUT-CC-TYPE-ERR-88
string
',' delimited by size
'ERR' delimited by size
into ascii-data with pointer ws-idx1
when pubcas-INPUT-CC-TYPE-SYS-88
string
',' delimited by size
'SYS' delimited by size
into ascii-data with pointer ws-idx1
when pubcas-INPUT-CC-TYPE-RTS-88
string
',' delimited by size
'RTS' delimited by size
into ascii-data with pointer ws-idx1
when pubcas-INPUT-CC-TYPE-USER-88
string
',' delimited by size
'USR' delimited by size
into ascii-data with pointer ws-idx1
when pubcas-INPUT-CC-TYPE-RC-88
string
',' delimited by size
'RC ' delimited by size
into ascii-data with pointer ws-idx1
when other
string
',' delimited by size
'XXX' delimited by size
into ascii-data with pointer ws-idx1
end-evaluate
move pubcas-INPUT-CC-NUM to disp-cc-nbr
string
',' delimited by size
disp-cc delimited by size
into ascii-data with pointer ws-idx1
else
move pubcas-INPUT-COND-CODE to disp-cc
string
',' delimited by size
'CC:' delimited by size
disp-cc delimited by size
into ascii-data with pointer ws-idx1
end-if
end-if
if pubcas-REC-TYPE-SYSOT-88
if pubcas-sysot-create-date is numeric
string
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data with pointer ws-idx1
end-if
string
',' delimited by size
pubcas-sysot-step-name
delimited by size
',' delimited by size
pubcas-sysot-pstp-name
delimited by size
',' delimited by size
pubcas-sysot-dd-name
delimited by size
into ascii-data with pointer ws-idx1
*> If 7 digit job numbering is active then
*> the SYSOT JOB Number will be a COMP-X item
if pubcas-SYSOT-JOB-NBR-2 is numeric
*> 5 digit
move pubcas-SYSOT-JOB-JOBNUM-5 to disp-job-nbr
else
*> 7 digit
move pubcas-SYSOT-JOB-JOBNUM-COMPX
to disp-job-nbr
end-if
string
",JN: "
disp-job-nbr delimited by size
into ascii-data with pointer ws-idx1
end-if
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
call-pubcas section.
if pubcas-FUNC = 78-CAS-FUNC-OPEN
*> Set the version to the current version
if pubcas-VERSION <= spaces
move CURR-VERSION to pubcas-VERSION
end-if
end-if
call "mvscaspb" using pubcas-area
if pubcas-retcode > 8
move pubcas-RETCODE to disp-rc
move pubcas-RSNCODE to disp-rsn
display 'call failed func ' pubcas-func ','
disp-rc ',' disp-rsn
',' pubcas-file-status
goback
end-if
if pubcas-FUNC = 78-CAS-FUNC-OPEN
if pubcas-VERSION is numeric
move pubcas-VERSION to ws-pb-get-version
else
move 1 to ws-pb-get-version
end-if
if ws-pb-get-version >= 2
*> Store the type of spool control file
*> were are using
move pubcas-SPL-INFO-FILES-FORMAT
to ws-pubcas-spl-format
end-if
end-if
exit section.
write-outfile section.
write ASCII-DATA
if ascii-file-status <> '00'
display 'write output failed ' ascii-file-status
goback
end-if
exit section
end program Program1.
identification division.
program-id. Program1.
environment division.
configuration section.
input-output section.
file-control.
SELECT ASCII-FILE
ASSIGN TO ASCII-DSN
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS ASCII-FILE-STATUS.
data division.
FILE SECTION.
FD ASCII-FILE
LABEL RECORDS STANDARD.
01 ASCII-DATA PIC X(80).
working-storage section.
01 ascii-file-status pic xx.
01 ascii-dsn pic x(250).
01 disp-rc pic 9999.
01 disp-rsn pic 9999.
01 disp-type pic 9.
01 disp-job-nbr pic 9(6).
01 directory-name pic x(260).
01 flags pic x(4) comp-5.
01 name-length pic x(4) comp-5.
01 status-code pic x(2) comp-5.
01 save-job-name pic x(8).
01 save-job-nbr pic x(4) comp-x.
01 pubcas-area.
copy "mfpubcas.cpy" replacing ==()== by ==pubcas==.
procedure division.
move '$outdir/output.txt' to ASCII-DSN
open output ascii-file
if ascii-file-status <> '00'
display 'open output failed ' ascii-file-status
goback
end-if
move 0 to flags
call "CBL_GET_CURRENT_DIR" using by value flags
by value name-length
by reference directory-name
returning status-code
perform get-messages *> type 6
perform get-o-hold *> type 7
perform get-ds-hold *> type 8
perform get-o-hold-type-jobname *> type 7 by job name
perform get-o-hold-type-create-date *> type 7 by date
perform o-spool-files-jobname *> type 8 and associated
*> type 10s
perform o-held-spool-files-jobname *> type 7 and associated
*> type 9s
display 'test prog ended '
goback.
o-held-spool-files-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Jobs with held output spool files ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
*> loop through the type output records to find jobs with
*> output spool files
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-o-hold-78
*> for each o-hold record
*> print details
*> save key
*> get associated output spool records (ds-hold)
*> reposition for next o-hold record
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move pubcas-job-name to save-job-name
move pubcas-job-nbr to save-job-nbr
move low-values to pubcas-area
move 78-KEY-IS-job-NUMBER
to pubcas-key-id
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-job-nbr <> save-job-nbr
*> all the output spool files for this job
if pubcas-type = pubcas-ds-hold-78
move spaces to ascii-data
string
' ' delimited by size
pubcas-SYSOT-STEP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-PSTP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-DD-NAME delimited by size
into ascii-data
perform write-outfile
end-if
perform call-pubcas
end-perform
*> reposition on the next job name that has a type 8 record
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move pubcas-o-hold-78 to pubcas-type
move save-job-name to pubcas-job-name
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
*> get next next job
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
if pubcas-job-name = save-job-name
and
pubcas-job-nbr = save-job-nbr
*> STGT and GN gets the same type 8
*> record ( duplicate keys allowed )
*> so need a second GN to get the next record
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-if
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
o-spool-files-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Jobs with output spool files ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-out-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
*> loop through the type output records to find jobs with
*> output spool files
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-out-78
*> for each o-hold record
*> print details
*> save key
*> get associated output spool records (ds-hold)
*> reposition for next o-hold record
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move pubcas-job-name to save-job-name
move pubcas-job-nbr to save-job-nbr
move low-values to pubcas-area
move 78-KEY-IS-job-NUMBER
to pubcas-key-id
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-job-nbr <> save-job-nbr
*> all the output spool files for this job
if pubcas-type = pubcas-ds-out-78
move spaces to ascii-data
string
' ' delimited by size
pubcas-SYSOT-STEP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-PSTP-NAME delimited by size
',' delimited by size
pubcas-SYSOT-DD-NAME delimited by size
into ascii-data
perform write-outfile
end-if
perform call-pubcas
end-perform
*> reposition on the next job name that has a type 8 record
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move pubcas-out-78 to pubcas-type
move save-job-name to pubcas-job-name
move save-job-nbr to pubcas-job-nbr
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
*> get next next job
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
if pubcas-job-name = save-job-name
and
pubcas-job-nbr = save-job-nbr
*> STGT and GN gets the same type 8
*> record ( duplicate keys allowed )
*> so need a second GN to get the next record
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-if
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold-type-create-date section.
move spaces to ascii-data
perform write-outfile
move 'By Type and Date - hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-date
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-o-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold-type-jobname section.
move spaces to ascii-data
perform write-outfile
move 'By Type and Job Name - o-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type-job-name
to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-o-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name
delimited by size
',' delimited by size
pubcas-dat-time
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-ds-out section.
move spaces to ascii-data
perform write-outfile
move 'By Type - ds-out ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-ds-out-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-o-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-o-hold section.
move spaces to ascii-data
perform write-outfile
move 'By Type - o-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-o-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-o-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-job-name delimited by size
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-ds-hold section.
move spaces to ascii-data
perform write-outfile
move 'By Type - ds-hold ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-ds-hold-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode > 8
or pubcas-type <> pubcas-ds-hold-78
move pubcas-type to disp-type
move pubcas-job-nbr to disp-job-nbr
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
disp-job-nbr delimited by size
',' delimited by size
pubcas-sysot-job-name
delimited by size
',' delimited by size
pubcas-sysot-step-name
delimited by size
',' delimited by size
pubcas-sysot-pstp-name
delimited by size
',' delimited by size
pubcas-sysot-dd-name
delimited by size
',' delimited by size
pubcas-sysot-create-date
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
get-messages section.
move 'Messages ' to ascii-data
perform write-outfile
move low-values to pubcas-area
move 78-KEY-IS-type to pubcas-key-id
move 78-CAS-FUNC-OPEN to pubcas-func
perform call-pubcas
move pubcas-mesg-78 to pubcas-type
move 78-CAS-FUNC-STGT to pubcas-func
perform call-pubcas
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
perform until pubcas-retcode <> 0
or pubcas-type > pubcas-mesg-78
move pubcas-type to disp-type
if pubcas-msglg-mesg-length > 256
move 256 to pubcas-msglg-mesg-length
end-if
move spaces to ascii-data
string disp-type delimited by size
',' delimited by size
pubcas-msglg-mesg(1:pubcas-msglg-mesg-length)
delimited by size
into ascii-data
perform write-outfile
move 78-CAS-FUNC-GN to pubcas-func
perform call-pubcas
end-perform
move 78-CAS-FUNC-CLOS to pubcas-func
perform call-pubcas
exit section.
call-pubcas section.
call "mvscaspb" using pubcas-area
if pubcas-retcode > 8
move pubcas-RETCODE to disp-rc
move pubcas-RSNCODE to disp-rsn
display 'call failed func ' pubcas-func ','
disp-rc ',' disp-rsn
',' pubcas-file-status
goback
end-if
exit section.
write-outfile section.
write ASCII-DATA
if ascii-file-status <> '00'
display 'write output failed ' ascii-file-status
goback
end-if
exit section
end program Program1.