z/OS Security Server RACF Macros and Interfaces
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Specifying a period in the stem name

z/OS Security Server RACF Macros and Interfaces
SA23-2288-00

IRRXUTIL typically changes the supplied stem variable to "" before setting the variables in the stem with RACF® profile information. The following REXX statement is equivalent to changing the variable to "":
stem.=""
To use a partially filled stem variable with IRRXUTIL, for example to fill in a stem with data from multiple RACF profiles, you can set a stem that contains a period (".") and make calls to fill in profile data as appropriate. In the following REXX statement, where number is the nth profile in a class, IRRXUTIL does not clear the stem:
stem.number
This means that data from a previous call to IRRXUTIL remains in the stem. It also means that the REXX default of variable_name is returned for any variables in the stem that are not set by IRRXUTIL. Therefore, it is important that REXX applications that specify a period (".") in the stem name clear the stem before calling IRRXUTIL for the first time and pass in stem names that do not conflict across multiple calls. IRRXUTIL does not clear the stem when its name contains a period (".").

When a stem contains a period ("."), IRRXUTIL returns a value of "2" as the main return code to highlight this warning. Return code 2 is considered a successful return code but does require that the application perform additional steps prior to calling IRRXUTIL to insure that the stem is cleared and that the stem names from one call to IRRXUTIL do not conflict with those of another call.

Examples

  1. In this example the stem MYUSER does not contain a period ("."). IRRXUTIL clears the stem of all defaults and previous values. Return code 1 is set to 0:
    myrc=IRRXUTIL("EXTRACT","USER","FRED","MYUSER","R_","FALSE")
    
    myrc=IRRXUTIL("EXTRACT","USER","BOB", "MYUSER","R_","FALSE")
    Therefore, after the second call the stem only contains information for "BOB".
  2. In this example USERS.1 contains data about FRED. USERS.2 contains information about BOB. They do not conflict because the numbers "1" and "2" keep the data separate. IRRXUTIL does not set the stem to "". The application is responsible for setting the stem to "" before calling IRRXUTIL for the first time. The application separates the results using a stem suffix of ".1" and ".2". A class can be read into a single stem using the EXTRACTN function. Return code 1 is set to 2:
    /* REXX */
    users.=""
    myrc=IRRXUTIL("EXTRACT","USER","FRED","USERS.1","R_","FALSE")
    
    myrc=IRRXUTIL("EXTRACT","USER","BOB", "USERS.2","R_","FALSE")
  3. This example returns bad result data because the stem is not initially cleared, and the same stem variable USERS.MYUSER is used. Fields that exist for FRED that do not exist for BOB, exist in the USERS.MYUSER stem after BOB is extracted. BOB's data appears in USERS.MYUSER, but data from FRED might also appear. For example, if user id FRED has a TSO segment, but BOB does not, USERS.MYUSER contains leftover TSO data (from FRED) when BOB is extracted. Return code 1 is set to 2:
    /* REXX */
    myrc=IRRXUTIL("EXTRACT","USER","FRED","USERS.MYUSER","R_","FALSE")
    
    myrc=IRRXUTIL("EXTRACT","USER","BOB", "USERS.MYUSER","R_","FALSE")

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014