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 ==============================================