;-( 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

Reply via email to