SRC entry (distribution and target zone)

The SRC entry describes source that exists in the distribution or target libraries. (SMP/E assumes that for each SRC entry in a particular zone there exists a MOD entry with the same name.) There are two ways a SRC entry can be created:
  • Installing a SYSMOD that contains the source. SRC entries are created the first time you install a SYSMOD that contains a ++SRC statement for source that does not yet have a SRC entry.
  • Processing JCLIN. SRC entries can be built during JCLIN processing when SMP/E scans the assembler step and determines that the assembler input is a member of a partitioned data set.

    SRC entries can also be built when SMP/E scans copy steps and finds a SELECT statement that specifies TYPE=SRC.

SMP/E records the function and service level of the source in the SRC entry, as well as information about how that source affects the structure of the distribution or target libraries and modules. Once a SRC entry exists for source, it is updated as subsequent SYSMODs that affect the source are installed.

Subentries

These are the subentries for the SRC entry as they appear in the LIST output:
name
is the name of the source represented by the SRC entry.

The name can contain from 1 to 8 alphanumeric characters and $, #, @, or hex C0.

DISTLIB
specifies the ddname of the distribution library for the source.

The UCL operand is DISTLIB(ddname).

The ddname can contain from 1 to 8 alphanumeric characters.

FMID
identifies the functional owner of this source. The functional owner is the last function SYSMOD that replaced this module.

The UCL operand is FMID(sysmod_id).

The SYSMOD ID must contain 7 alphanumeric characters.

LASTUPD
identifies the cause of the last change to this SRC entry.
The UCL operand is LASTUPD(value). This subentry can contain one of the following values:
JCLIN
indicates that the change was made during JCLIN command processing.
UCLIN
indicates that the change was made as a result of UCLIN processing.
sysmod_id
indicates that the change was made during the installation of the indicated SYSMOD.

The SYSMOD ID must contain 7 alphanumeric characters.

LASTUPD TYPE
indicates how the entry was last changed.
The UCL operand is LASTUPDTYPE(value). This subentry can contain one of the following values:
ADD
The entry was added.
MOV
The entry was moved.
UPD
The entry was updated.
RMID
identifies the last SYSMOD that replaced this source. Any subsequent SYSMOD that modifies this module must have a defined relationship (such as PRE or SUP) with this SYSMOD.
The UCL operand is RMID(sysmod_id).
  • The SYSMOD ID must contain 7 alphanumeric characters.
  • If RMID is not specified, but FMID is, SMP/E sets the RMID value to the specified FMID.
SYSLIB
specifies the ddname of the target library for the source.
The UCL operand is SYSLIB(ddname).
  • Only one SYSLIB value can be specified.
  • The ddname can contain from 1 to 8 alphanumeric characters.
UMID
identifies all the SYSMODs that have updated this source since it was last replaced. Any subsequent SYSMOD that modifies this module must have a defined relationship (such as PRE or SUP) with all these SYSMODs.

The UCL operand is UMID(sysmod_id).

The SYSMOD ID must contain 7 alphanumeric characters.

LIST Examples

To list all the SRC entries in a particular zone, you could use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     SRC                /* List all SRC entries.    */.
To list specific SRC entries, you could use these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     SRC(SRC01          /* List only these two      */
             SRC02)         /* entries.                 */.
The format of the LIST output for each SRC entry is the same for both of these commands. The only difference is the number of SRC entries listed. Figure 1 is an example of LIST output for SRC entries.
Figure 1. SRC entry: sample LIST output
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          SOURCE ENTRIES

  NAME

SRC01     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=ASRCLIB   SYSLIB=SRCLIB
          FMID            = JXY1102
          RMID            = JXY1102

SRC02     LASTUPD         = JXY1000 TYPE=UPD
          LIBRARIES       = DISTLIB=ASRCLIB   SYSLIB=SRCLIB
          FMID            = JXY1121
          RMID            = UZ00010
          UMID            = UZ00014   UZ00015
By specifying the FORFMID operand, you can reduce the number of SRC entries listed. When FORFMID is specified, SMP/E lists a SRC entry only if its FMID matches one of the FMIDs specified on the FORFMID operand. For example, to list SRC entries whose FMIDs either are defined in FMIDSET TP or are JXY1102, you could use these commands:
SET      BDY(TGT1)          /* Set to target zone.      */.
LIST     SRC                /* List all source entries  */
         FORFMID(TP         /* for the TP FMIDSET       */
                 JXY1102)   /* and FMID JXY1102.        */.
You can also use the LIST command to find out the name of every SYSMOD that has modified source. To include the names of these SYSMODs in the LIST output, you can use the XREF operand, as shown in these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     SRC                /* List all source entries  */
         XREF               /* and related SYSMODs.     */.
Note:
  1. XREF can be used either in mass mode or in select mode.
  2. SMP/E obtains the data included for the XREF operand by checking for SRC and SRCUPD entries for this module in all the SYSMOD entries. Because this data is not contained in the SRC entry itself, you cannot use UCLIN to change it in the SRC entry.
Figure 2 is an example of the LIST output produced when the XREF operand is used.
Figure 2. SRC entry: sample LIST output when XREF is specified
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          SOURCE ENTRIES


  NAME

SRC01     LASTUPD         = JXY1102 TYPE=ADD
          LIBRARIES       = DISTLIB=ASRCLIB   SYSLIB=SRCLIB
          FMID            = JXY1102
          RMID            = JXY1102
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  SRC     APP    ACC

SRC02     LASTUPD         = JXY1000 TYPE=UPD
          LIBRARIES       = DISTLIB=ASRCLIB   SYSLIB=SRCLIB
          FMID            = JXY1121
          RMID            = UZ00010
          UMID            = UZ00014   UZ00015
          SYSMOD HISTORY  = SYSMOD   TYPE      DATE   MCS     --STATUS--
                            JXY1102  FUNCTION 07.100  SRC     APP    ACC
                            JXY1121  FUNCTION 07.150  SRC     APP    ACC
                            UZ00010  PTF      07.150  SRC     APP
                            UZ00014  PTF      07.160  SRCUPD  APP
                            UZ00015  PTF      07.161  SRCUPD  APP

UNLOAD Examples

To dump the SRC entries in UCL format, you can use the UNLOAD command. To unload all the SRC entries in a particular zone, you could use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
UNLOAD   SRC                /* Unload all SRC entries.  */.
To unload specific SRC entries, you could use these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
UNLOAD   SRC(SRC01          /* Unload only these two    */
             SRC02)         /* entries.                 */.
The format of the UNLOAD output for each SRC entry is the same for both of these commands. The only difference is the number of SRC entries listed. Figure 3 is an example of UNLOAD output for SRC entries.
Figure 3. SRC entry: sample UNLOAD output
UCLIN .
REP       SRC             ( SRC01    )
          LASTUPD         ( JXY1102  )
          LASTUPDTYPE     ( ADD )
          DISTLIB         ( ASRCLIB  )
          SYSLIB          ( SRCLIB   )
          FMID            ( JXY1102 )
          RMID            ( JXY1102 )
                          .
REP       SRC             ( SRC02    )
          LASTUPD         ( JXY1121  )
          LASTUPDTYPE     ( UPD )
          DISTLIB         ( ASRCLIB  )
          SYSLIB          ( SRCLIB   )
          FMID            ( JXY1121 )
          RMID            ( UZ00010 )
          UMID            ( UZ00014   UZ00015  )
                          .
ENDUCL.
By specifying the FORFMID operand, you can reduce the number of SRC entries unloaded. When FORFMID is specified, SMP/E unloads a SRC entry only if its FMID matches one of the FMIDs specified on the FORFMID operand. For example, to unload SRC entries whose FMIDs either are defined in FMIDSET TP or are JXY1102, you could use these commands:
SET      BDY(TGT1)          /* Set to target zone.      */.
UNLOAD   SRC                /* Unload all source entries*/
         FORFMID(TP         /* for the TP FMIDSET       */
                 JXY1102)   /* and FMID JXY1102.        */.

UCLIN Examples

You can use the ADD, REP, and DEL UCL statements to change subentries in the SRC entry. After the UCLIN changes are done, the SRC entry must contain at least the following subentries:
  • DISTLIB
  • FMID
  • RMID

Otherwise, there is not enough information in the entry to process the macro. If any of these subentries are missing, SMP/E does not make the requested UCL updates to the entry, and the entry remains as it was before the UCL command.

The following examples are provided to help you use the SRC entry.