This section presents a listing of the mfjdxit.cpy copybook used by JXIT. The source for this copybook is in %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\cpylib (Windows) or $COBDIR/cpylib (UNIX).
*===============================================================
* Copyright (C) 1997-2017 Micro Focus.
* All rights reserved.
*===============================================================
*
* MFJDXIT - JCL User Exit Control Block
* Contains interface information and is passed as a parameter
* to the JCL user exit (MFJUXIT) which is invoked as
* call 'MFJUXIT' using JXIT
*
* Notes:
* 1. It should be included as follows (e.g.)
* 1 JXIT.
* COPY MFJDXIT REPLACING ==(tag)== BY ==JXIT==.
* 2. Fields beginning with JXIT-I- ( (tag)-I- ) are Input
* to the user exit and must not be modified
* e.g. JXIT-I-size
* 3. Fields beginning with JXIT-U- ( (tag)-U- ) are Input and
* Output. On entry to the user exit, they are set as
* appropriate and may be changed by the user exit to an
* acceptable value upon return.
* e.g. (tag)-U-PGM-alias
* 4. All data is ASCII(ANSI). Null values are those appropriate
* for the data type. i.e. blanks for character data,
* zeros for numeric and binary data
*
* --Date--- Who --What------------------------------------------
* 2002Mar04 DSA Initial version
* 2003Apr25 DSA Changes as a result of addition of support for
* Event-step-ready
* 2005Sep07 DSA Added new event event-job-concluded and
* event event-job-purged
* 2006Oct13 - Added Event-job-stmt-info and
* Event-uxit-chgd-jobname
* 2017MAR27 ANF Added Event-job-queued
*
*===============================================================
*===============================================================
* Header
*===============================================================
3 (tag)-I-header.
* Size of this block
5 (tag)-I-size pic s9(8) comp.
* Unless otherwise noted, all events occur for
* JCL, TSO, and TSO-in-batch (PGM=IKJEFTxx or IDAEFTxx)
* Event code of event. Ignore undefined event codes.
5 (tag)-I-event pic s9(8) comp.
* The following events occur for JCL and TSO-in-batch
* and represent execution of a JCL JOB stream
88 (tag)-I-event-job-ready value 1.
88 (tag)-I-event-job-stmt-info value 25. *> This
*> event is broadcast ONLY to the JCL user exit
88 (tag)-I-event-uxit-chgd-jobname value 26. *>
*> event is broadcast ONLY to the event manager
88 (tag)-I-event-job-queued value 27.
88 (tag)-I-event-job-concluded value 2.
88 (tag)-I-event-job-started value 3.
88 (tag)-I-event-job-purged value 4.
88 (tag)-I-event-job-ended value 5.
* The following events occur for an interactive TSO
* session only
88 (tag)-I-event-TSO-started value 6.
88 (tag)-I-event-TSO-ended value 7.
* The following events occur for JCL and TSO-in-batch
* and represnt execution of "EXEC PGM=" JCL stmt
88 (tag)-I-event-step-ready value 8.
88 (tag)-I-event-step-started value 9.
88 (tag)-I-event-step-ended value 10.
88 (tag)-I-event-step-bypassed value 11.
* The following events occur for TSO and TSO-in-batch
* (IKJEFT01) and
* ... represent execution of the TSO "CALL pgm" command
88 (tag)-I-event-CALL-ready value 12.
88 (tag)-I-event-CALL-started value 13.
88 (tag)-I-event-CALL-ended value 14.
* ... represent execution of the DSN subcommand
* "RUN PROG(pgm)"
88 (tag)-I-event-RUN-ready value 15.
88 (tag)-I-event-RUN-started value 16.
88 (tag)-I-event-RUN-ended value 17.
*
* Under MFE, all events, except Event-before-PGM-call and
* Event-after-PGM-call, occur in the parent process.
* These two events occur in the child process.
*
* Under ESJCL,
* - Event-job-ready, Event-uxit-chgd-jobname, and
* Event-job-purged events
* occur only in the Service Execution Process (SEP),
* not in the initiator SEP.
* - Event-job-concluded event occurs in the standard SEP
* only if the job is not intended for execution (i.e.
* it is TYPRUN=COPY or TYPRUN=SCAN) or it has JCL
* errors. Otherwise this event occurs in the initiator
* SEP.
* - All other events occur in the initiator SEP.
*
*
* The following events occur for all environments
* for execution of a program following all
* "...-started" events.
* ***Note*** that these events occur in the child process
* that executes the program. Any working storage used by
* the user exit will not be the same as that for
* other events which occur in the parent process.
* In the parent process, your user exit will not remember
* information prior to "event-before-PGM-call" or after
* "event-after-PGM-call". Since both of these events
* occur in the child process, the user exit will be
* able to remember information between these two events.
88 (tag)-I-event-before-PGM-call value 18.
88 (tag)-I-event-after-PGM-call value 19.
* Event codes 25, 26 and 28 thru 50
* are reserverd for JCL User exit
* Event codes 51 thru 99 reserverd for JES Monitor
* 88 (tag)-I-event-job-stmt-info value 25. See above
* 88 (tag)-I-event-uxit-chgd-jobname value 26. See above
* Event codes for file open, close and delete events for
* use by HSF stats - passed to ES Event manager
88 (tag)-I-event-dd-file-open value 51.
88 (tag)-I-event-dd-file-close value 52.
88 (tag)-I-event-dd-file-delete value 53.
*===============================================================
* Action codes for all events. Upon return from the user exit,
* action code indicates next course of action to be taken.
* Upon entry to the user exit, it is set to zero.
*===============================================================
5 (tag)-U-action pic s9(8) comp.
* The JCL engine should continue as if the exit were
* never invoked. Any modified data will be ignored.
88 (tag)-U-action-continue value 0.
* The JCL engine should not call the exit any more in
* this process for this job/TSO session
88 (tag)-U-action-shut-exit value 1.
*===============================================================
* Action codes for: event-job-ready
*===============================================================
* The JCL engine should use all modified
* fields except pc-fname
88 (tag)-U-action-MVS-dsn value 2.
* The JCL engine should use all modified
* fields except MVS-dsn
88 (tag)-U-action-pc-fname value 3.
* The JCL engine should flush the job
88 (tag)-U-action-flush value 4.
*===============================================================
* Action codes for: event-job-stmt-info
*===============================================================
* The JCL engine should use all modified
* job information (action-continue)
* See 88 (tag)-U-action-flush above
*===============================================================
* Action codes for: event-step-ready
* event-CALL-ready
* event-RUN-ready
*===============================================================
* The JCL engine should use all modified fields
88 (tag)-U-action-PGM-info value 5.
* The JCL engine should abend this step/program.
* The step/program will be abended with
* S822 (Region not available)
88 (tag)-U-action-abend value 6.
*===============================================================
* Action codes for: event-job-ended
* event-TSO-ended
* event-step-ended
* event-CALL-ended
* event-RUN-ended
*===============================================================
* The JCL engine should use all modified fields
88 (tag)-U-action-term-info value 7.
*===============================================================
* Action codes for: event-job-concluded
*===============================================================
* The JCL engine should use all modified fields
88 (tag)-U-action-concl-info value 8.
*===============================================================
* Action codes for: event-job-started
* event-TSO-started
* event-step-bypassed
* event-step-started
* event-CALL-started
* event-RUN-started
* event-before-PGM-call
* event-after-PGM-call
* - No Action codes defined other than 0
*===============================================================
5 (tag)-U-log-event pic x.
* The JCL engine should log all events (default)
88 (tag)-U-log-event-on value x'00'.
* The JCL engine should log only those events for which
* the exit requests a explicit action (non- 0 or 1)
88 (tag)-U-log-event-on-action value x'01'.
* The JCL engine not log any events unless
* requested to do so otherwise in the future
88 (tag)-U-log-event-off value x'02'.
* The JCL engine should log most events,
* currently all except
* - job-event-concluded
88 (tag)-U-log-event-on-min value x'03'.
5 pic x(2).
* Job number - may be 0 if not yet available
5 (tag)-I-this-jobnum pic 9(5).
* Job name - may be '????????' if not yet available
5 (tag)-I-this-jobname pic x(8).
* Process id
5 (tag)-I-this-proc-id pic 9(9) comp.
*===============================================================
* Event related data - varies by event
*===============================================================
3 (tag)-I-data pic x(368).
*===============================================================
* Data for: event-job-ready
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-job-ready.
* reserved (used to be Job number). Use I-this-jobnum
7 pic 9(5).
* Fully qualified PC file name.
7 (tag)-U-pc-fname pic x(260).
* If available, MVS data set name (including member if
* a PDS) assoicated with pc-fname, otherwise blanks.
* e.g. MFIDSA.CNTL(MYJOB) (for a PDS member) or
* S0310.S070508.J01364.D00002.SYSUT2 (for PS)
7 (tag)-U-MVS-dsn pic x(54).
*
7 (tag)-I-submit-type pic x(1).
88 (tag)-I-submit-type-exec value 'E'.
88 (tag)-I-submit-type-scan value 'S'.
7 (tag)-I-animate pic x(1).
88 (tag)-I-animate-on value 'Y'.
88 (tag)-I-animate-off value 'N'.
*===============================================================
* Data for: event-uxit-chgd-jobname
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-uxit-chgd-jobname.
7 (tag)-I-old-jobname pic x(8).
*> This was the jobname on the job card. it was changed
*> by the JCL user exit to -i-this-jobname (above).
*===============================================================
* Data for: event-job-stmt-info
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-U-data-job-stmt-info.
7 (tag)-U-jobname pic x(8).
7 (tag)-U-typrun pic 9(4) comp.
88 (tag)-U-typrun-scan value 0.
88 (tag)-U-typrun-exec value 1.
88 (tag)-U-typrun-anim value 2.
88 (tag)-U-typrun-copy value 3.
88 (tag)-U-typrun-hold value 4.
7 (tag)-U-msgclass pic x(1).
7 (tag)-U-msglevel-1 pic 9(1).
7 (tag)-U-msglevel-2 pic 9(1).
7 (tag)-U-userid pic x(8).
7 (tag)-U-pgmr-name pic x(20).
7 (tag)-U-jobclass pic x(1).
7 (tag)-U-prty pic 9(4) comp. *> 0-15
7 (tag)-U-group pic x(8).
7 (tag)-U-notify-node pic x(8).
7 (tag)-U-notify-userid pic x(8).
7 (tag)-U-password pic x(32).
7 (tag)-U-password-new pic x(32).
7 (tag)-U-seclabel pic x(8).
7 (tag)-U-job-perform pic 9(4) comp. *> 1-999
7 (tag)-U-acct-len pic 9(4) comp.
7 (tag)-U-acct-value pic x(143).
7 pic x(81).
*===============================================================
* Data for: event-job-concluded
* - concl-return-code and concl-reason-code not applicable to
* concl-rc-ended, concl-rc-abended, concl-rc-cancelled,
* concl-rc-authfailed.
* concl-reason-code is currently not used and is always 0.
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-job-concl.
* Job processing outcome
7 (tag)-I-concl-rc pic s9(8) comp.
88 (tag)-I-concl-rc-ended value 1.
88 (tag)-I-concl-rc-abended value 2.
88 (tag)-I-concl-rc-jcl-error value 3.
88 (tag)-I-concl-rc-scanned value 4.
88 (tag)-I-concl-rc-scan-failed value 5.
88 (tag)-I-concl-rc-flush-no-job value 6.
88 (tag)-I-concl-rc-flush-bad-job value 7.
88 (tag)-I-concl-rc-flush-uxit value 8.
88 (tag)-I-concl-rc-copied value 9.
88 (tag)-I-concl-rc-cancelled value 10.
88 (tag)-I-concl-rc-authfailed value 11.
7 (tag)-U-concl-return-code pic s9(8) comp.
7 (tag)-U-concl-reason-code pic s9(8) comp.
*===============================================================
* Data for: event-job-flushed
* See event-job-ready.
* - Only the first field is relevant
*===============================================================
*===============================================================
* Data for: event-job-queued
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-job-queued.
7 (tag)-input-queue pic 9(02).
88 (tag)-I-input-hold-88 value 1.
88 (tag)-I-input-ready-88 value 3.
*===============================================================
* Data for: event-job-started
* event-TSO-started
* event-step-bypassed
* - Field names containing "step" are irrelevant for non-step
* related events
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-job-started.
$if ILGEN set
7 pic x(24).
$else
7 pointer.
7 pointer.
7 pointer.
$end
*
* Active System and Subsystems combinations are:
* System Subsystem
* ----------------
* JCL JCL
* JCL TSO (IKJEFTxx)
* JCL IMS (DFSRC000)
* TSO TSO
* TSO IMS (CALL DFSRC000)
* IMS IMS
* CICS CICS
*
* Active system
7 (tag)-I-system pic x.
88 (tag)-I-system-JCL value x'00'.
88 (tag)-I-system-TSO value x'01'.
88 (tag)-I-system-ims value x'02'.
88 (tag)-I-system-cics value x'03'.
88 (tag)-I-system-null value x'63'.
* Active subsystem
7 (tag)-I-subsystem pic x.
88 (tag)-I-subsystem-JCL value x'00'.
88 (tag)-I-subsystem-TSO value x'01'.
88 (tag)-I-subsystem-ims value x'02'.
88 (tag)-I-subsystem-cics value x'03'.
88 (tag)-I-subsystem-TSO-sstm value x'0B'.
88 (tag)-I-subsystem-ims-sstm value x'0C'.
88 (tag)-I-subsystem-cics-sstm value x'0D'.
88 (tag)-I-subsystem-null value x'63'.
7 (tag)-I-jobname pic x(8).
7 (tag)-I-userid pic x(8).
7 (tag)-I-jobstep pic x(8).
7 (tag)-I-procstep pic x(8).
7 (tag)-I-jobnum pic 9(5).
7 (tag)-I-stepnum pic 9(3).
7 (tag)-I-procstepnum pic 9(3).
7 pic x(1).
7 pic x(1).
7 (tag)-I-msgclass pic x(1).
7 (tag)-I-msglevel1 pic x(1).
7 (tag)-I-msglevel2 pic x(1).
7 pic x.
7 pic x(1).
* Dates in YYYYMMDD format, times in HHMMSShh
7 (tag)-I-job-start-date pic 9(8).
7 (tag)-I-job-start-time pic 9(8).
7 (tag)-I-step-start-date pic 9(8).
7 (tag)-I-step-start-time pic 9(8).
5 (tag)-I-job-acct.
7 (tag)-i-job-acct-len pic 9(4) comp.
7 (tag)-i-job-acct-value pic x(143).
5 (tag)-I-jobclass pic x(01).
*===============================================================
* Data for: event-job-ended
* event-TSO-ended
* event-step-ended
* event-CALL-ended
* event-RUN-ended
* event-after-PGM-call
* See event-job-started
* - plus the following data
*===============================================================
5 (tag)-U-data-job-ended.
7 (tag)-U-term-type pic x.
88 (tag)-U-term-type-normal value x'00'.
88 (tag)-U-term-type-user-abend value x'01'.
88 (tag)-U-term-type-sys-abend value x'02'.
88 (tag)-U-term-type-RTS-err value x'03'.
88 (tag)-U-term-type-RU-err value x'04'.
88 (tag)-U-term-type-unknown value x'05'.
7 pic x(3).
7 (tag)-U-term-return-code pic s9(8) comp.
7 (tag)-U-term-reason-code pic s9(8) comp.
*> 88 (tag)- Currently this is always 0. In the
*> future, a non-zero value would indicate a unique
*> reason within the return-code above.
*===============================================================
* Data for: event-step-ready
* event-step-started
* event-CALL-ready
* event-CALL-started
* event-RUN-ready
* event-RUN-started
* event-before-PGM-call
* See event-job-started
* - Plus the following data
* - Field names containing "step" are relevant
*===============================================================
5 (tag)-I-data-step-ready.
7 (tag)-U-PGM-name pic x(8).
7 (tag)-U-PGM-alias pic x(8).
7 (tag)-U-PGM-parm.
9 (tag)-U-PGM-parm-len pic s9(4) comp.
9 (tag)-U-PGM-parm-txt pic x(96).
*===============================================================
* HSF Data - passed to ES Event Manager
*===============================================================
3 redefines (tag)-I-data.
5 (tag)-I-data-file-open.
7 (tag)-ddname pic x(08).
7 (tag)-dsname pic x(54).
7 (tag)-ds-type pic x(1).
7 (tag)-ds-access-type pic x(1).
3 redefines (tag)-I-data.
5 (tag)-I-data-file-close.
7 (tag)-ddname pic x(08).
7 (tag)-dsname pic x(54).
7 (tag)-io-cnt-read pic s9(8).
7 (tag)-io-cnt-write pic s9(8).
7 (tag)-io-cnt-rewrite pic s9(8).
7 (tag)-io-cnt-delete pic s9(8).
3 redefines (tag)-I-data.
5 (tag)-I-data-file-delete.
7 (tag)-ddname pic x(08).
7 (tag)-dsname pic x(54).
*= End of MFJDXIT ==============================================