;-( Examples didn't match Type definitions in original note. Replacement Type 1
below.
There are several types of usermods that turn source code into a load module
depending on the initial SMP/E environment. There are undoubtedly other
variations for each example below, but these have worked for years across many
z/OS releases. Note that data sets do not necessarily exist as named. JCLIN
parses out the LLQ and looks for a matching DDNAME or DDDEF. You don't need to
repeat info that SMP/E already has unless you want to change something.
1. A net new source module not previously defined to SMP/E at all. Usermod must
incorporate all installation 'instructions'.
2. A replacement for a source module that is already defined to SMP/E together
with a corresponding load module. SMP/E already knows how to link load module.
3. A source module supplied as ++SAMP but not previously installed as a load
module. As with Type 1, SMP/E needs all link info.
Here are some examples.
Type 1.
//SYSIN DD *
SET BDY (GLOBAL) .
RECEIVE SYSMODS.
SET BDY (MVST100) .
APPLY S(SMFACT1) REDO.
//SMPPTFIN DD DATA,DLM=$$
++USERMOD (SMFACT1) REWORK(2014171) . <== Use REWORK to avoid having to
REJECT on RECEIVE
++VER (Z038) FMID (HBB7790) .
++JCLIN .
//SMFACT1 EXEC LINKS,PARM='XREF,LIST,LET,NCAL,RENT' <== Includes both ASM
and link
//AOSB3 DD DISP=SHR,DSN=SYS1.AOSB3
//SYSLMOD DD DISP=SHR,DSN=SYS1.LINKLIB
//SYSLIN DD *
INCLUDE AOSB3(SCEACTLG)
MODE AMODE(31) RMODE(ANY)
NAME SCEACTLG(R)
++SRC(SCEACTLG) DISTLIB(ASAMPLIB) .
<<<Complete source goes here>>>
$$ <== Because of DLM=$$
Type 2.
//SMPSTEP.SMPCNTL DD *
SET BDY(GLOBAL) .
RECEIVE SYSMODS .
SET BDY(MVST100) .
APPLY S(SDSF001) REDO .
//SMPSTEP.SMPPTFIN DD *
++USERMOD(SDSF001) REWORK(2014171) . <== Use REWORK to avoid having to REJECT
on RECEIVE
++VER(Z038) FMID(HQX7790) /* ZOS R21
THIS USERMOD IS A COMPLETE SRC REPLACEMENT
FOR THE SDSF USER EXIT. JCLIN IS NOT
REQUIRED BECAUSE SDSF ALREADY CONTAINS A
NATIVE DEFINITION FOR THE EXIT. AS
CONSTRUCTED, THE USERMOD WILL CAUSE SMPE
TO COPY THE SOURCE INTO THE STANDARD
SOURCE LIBRARY, ASSEMBLE IT, AND LINK IT
INTO THE STANDARD LOAD LIBRARY. FOR
RELEASE 1.6, THESE LIBRARIES ARE
SRC -- SISFSRC
LMOD -- SISFLOAD
*/ .
++SRC(ISFUSER) .
<<<Complete source replacement goes here>>>
Type 3.
//SYSIN DD *
SET BDY(GLOBAL) .
RECEIVE SYSMODS .
SET BDY(MVST100) .
APPLY S(JESXC05) REDO .
UCLIN .
REP SAMP(HASX05C) RMID(JESXC05) /* INDUCE REGRESSION MSGS */ . <==
Causes regression message in case a PTF hits the SAMP
ENDUCL .
//SMPPTFIN DD DATA,DLM=$$
++ USERMOD (JESXC05) REWORK(20141710) /* JES2 EXIT 5C <== Use REWORK to
avoid having to REJECT on RECEIVE
IBM-SAMPLE-PROVIDED COMMAND TRANSLATOR
*/.
++ VER (Z038) FMID(HJE7790) .
++ JCLIN .
//ASM EXEC PGM=IEV90,PARM='DECK,NOOBJ,XREF(SHORT)'
//SYSIN DD DDNAME=SHASSAMP
//SHASSAMP DD DSN=SYS1.SHASSAMP(HASX05C),DISP=SHR
//SYSPUNCH DD DSN=SYS1.SYSPUNCH(HASX05C),DISP=SHR
//LINKEDIT EXEC PGM=IEWL,PARM='XREF,LIST,LET,NCAL,AC=1'
//SYSLMOD DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSPUNCH DD DSN=SYS1.SYSPUNCH,DISP=SHR <== Fictitious, just for JCLIN
//SYSLIN DD *
INCLUDE SYSPUNCH(HASX05C)
NAME HASX05C(R)
++SRC(HASX05C) DISTLIB(AHASSAMP) TXLIB(SHASSAMP) . <== Source lives elsewhere
$$ <== Because of DLM=$$
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
[email protected]
<snipping all to shorten post>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN