1
0
mirror of https://github.com/moshix/mvs.git synced 2026-01-11 23:43:00 +00:00
moshix.mvs/jcmacro.rexx
moshix 3727e41de1
This adds a job card to your new ISPF member when you create a new job
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.
2018-08-07 05:18:15 -05:00

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