mirror of
https://github.com/moshix/mvs.git
synced 2026-01-11 23:43:00 +00:00
put in 'USER.CLIST' with name jcmacro. INSTALLATION Copy the JC macro to the user SYSPROC library. You can obtain the SYSPROC library list by typing this command from the TSO command line: tso isrddn Press F8 until you find the DDname SYSPROC. On the right is the dataset name list allocated to the DDname SYSPROC. Copy the JC macro into one of these libraries (User.lib.exec). SET-UP To follow your jobcard standards you must modify the following statements: Line # 6 ->STMT2="// NOTIFY="USERID()",REGION=8M,CLASS=A" Modify the REGION and CLASS parameters appropriately: Line # 3Ø and 31 -> STMT1 = "//"USERID()||CJNUM||, © 2005. Reproduction prohibited. Please inform Xephon of any infringement. 5 " JOB (ACCNT-INFO),'"||PGMRNAME||"',MSGCLASS=R," Modify the ACCNT-INFO and the MSGCLASS parameter. USAGE The JC macro has only one parameter, the programmer name, and can be used with or without the parameter. Edit a dataset, which can be full or empty, and type JC in the TSO command line. The jobcard will be inserted automatically. JC without parameters: EDIT USER.LIB.TEST(memØ1) - Ø1.73 Columns ØØØØ1 ØØØ72 Command ===> JC Scroll ===> HALF ****** ************************** Top of Data ************************** '''''' '''''' '''''' After you have pressed the Enter key, the following screen will be shown: EDIT USER.LIB.TEST(memØ1) - Ø1.74 Columns ØØØØ1 ØØØ72 Command ===> Scroll ===> HALF ****** ************************** Top of Data ************************** ØØØØØ1 //USERIDØ1 JOB (ACCNT-INFO),'PGMRNAME',MSGCLASS=R, ØØØØØ2 // NOTIFY=USERID,REGION=8M,CLASS=A ØØØØØ3 //*** JOB CARD GENERATED AUTOMATICALLY *** JC with parameters: EDIT USER.LIB.TEST(memØ1) - Ø1.73 Columns ØØØØ1 ØØØ72 Command ===> JC MY NAME Scroll ===> HALF ****** ************************* Top of Data *************************** '''''' '''''' '''''' The parameter can have a maximum length of 18 characters. If the length exceeds 18 characters, the macro automatically selects only 18.
50 lines
1.6 KiB
Rexx
50 lines
1.6 KiB
Rexx
/* REXX */
|
|
/* ONLY FOR DEBUG
|
|
CJNUM = CNTJNUM
|
|
ADDRESS ISPEXEC "VPUT (CJNUM) PROFILE"
|
|
*/
|
|
STMT2="// NOTIFY="USERID()",REGION=28M,CLASS=A"
|
|
STMTC="//*** JOB CARD GENERATED AUTOMATICALLY *** "
|
|
CNTJNUM = 0
|
|
ADDRESS ISPEXEC
|
|
"ISREDIT MACRO (PGMRNAME)" /* PGMRNAME: PARAMETER PASSED TO THE MACRO */
|
|
"ISREDIT (MBR) = MEMBER"
|
|
IF LENGTH(PGMRNAME) < 1 THEN DO /* IF PGMRNAME NOT SPECIFIED */
|
|
CALL GET_UNAME /* GET PGMRNAME */
|
|
END
|
|
ELSE DO
|
|
IF LENGTH(PGMRNAME) > 18 THEN ,
|
|
PGMRNAME = SUBSTR(PGMRNAME,1,18)
|
|
END
|
|
"VGET (CJNUM) PROFILE"
|
|
CVAR = CJNUM
|
|
IF DATATYPE(CVAR) <> "NUM" THEN
|
|
DO
|
|
CJNUM = CNTJNUM
|
|
"VPUT (CJNUM) PROFILE"
|
|
END
|
|
CJNUM = CJNUM + 1
|
|
IF CJNUM > 9 THEN DO
|
|
CJNUM = 1
|
|
END
|
|
STMT1 = "//"USERID()||CJNUM||,
|
|
" JOB (MOSHIX),'"||PGMRNAME||"',MSGCLASS=H,"
|
|
"VPUT (CJNUM) PROFILE"
|
|
"ISREDIT LOCATE .ZFIRST" /* TEST IF THE MEMBER IS EMPTY */
|
|
IF RC <> 8 THEN "ISREDIT UP MAX" /* TOP OF THE SCREEN */
|
|
'ISREDIT LINE_AFTER 0 =(STMT1)' /*PUT IN THE MBR FIRST JOBCARD PIECE */
|
|
'ISREDIT LINE_AFTER 1 =(STMT2)' /*PUT IN THE MBR SECOND JOBCARD PIECE*/
|
|
'ISREDIT LINE_AFTER 2 =(STMTC)' /*PUT IN THE MBR JOBCARD COMMENT */
|
|
"ISREDIT HI JCL" /* HILITE JCL CONTROL STATEMENT */
|
|
EXIT
|
|
GET_UNAME:
|
|
PSAOLD = STORAGE(D2X(548),4) /* PTR PSA */
|
|
ASCBASXB = STORAGE(D2X(C2D(PSAOLD)+108),4) /* PTR ASXB */
|
|
ACEEADDR = STORAGE(D2X(C2D(ASCBASXB)+200),4) /* PTR ACEE */
|
|
USERID = STORAGE(D2X(C2D(ACEEADDR)+21),8) /* USER NAME */
|
|
LOGONGRP = STORAGE(D2X(C2D(ACEEADDR)+30),8) /* LOGON GROUP */
|
|
ACEEUNAM = STORAGE(D2X(C2D(ACEEADDR)+100),4) /* PTR USER NAME */
|
|
PGMRNAME = STORAGE(D2X(C2D(ACEEUNAM)+1),20) /* PROGRAMMER NAME */
|
|
PGMRNAME = STRIP(PGMRNAME)
|
|
RETURN
|