I Pioneer Post-Processing Commands

Pioneer can post-process RACF commands. The commands that are enabled through Pioneer for Post-Processing are ADDUSER, ALTUSER, CONNECT, DELUSER, and REMOVE.

Post-processing is used to pass any USERID or command that is successfully processed by the provisioning agent (Pioneer) to a REXX/CLIST member for further processing. Post-processing is triggered by separate configuration entries in the Pioneer control file (<HLQ>.PIONEER.CONTROL.FILE). It accepts commands in the format C=SUPPORTED_COMMAND, where SUPPORTED_COMMAND can be ADDUSER, ALTUSER, DELUSER, CONNECT, or REMOVE.
When you specify a C=SUPPORTED_COMMAND command with the L= (library) and M= (member) parameters along with a required parameter (for example, USERID=Y or CMD=Y), the PDS in L= and M= is submitted by Pioneer through the Intrd. Therefore, M= from L= must be a batch Job to execute a REXX/CLIST exec. The parameter USERID=Y indicates the user ID to be passed and CMD=Y indicates the RACF command to be passed for post-processing. If you use CMD=N, then the user ID alone is passed for post-processing. The name of the REXX/CLIST member should be same as that of M=member.

To determine if there is a post-process, Pioneer will read the control file (DDNAME=PARMFLE) and looks for the C=SUPPORTED_COMMAND property.

ADDUSER Command in Post-Processing

Below are the valid configurations for post-processing the ADDUSER command. You must add only one of the following entries to the <HLQ>.PIONEER.CONTROL.FILE file:
C=ADDUSER,M=XXXXXX,L=XXX.XXX.XXX,USERID=Y
C=ADDUSER,L=XXX.XXX.XXX,M=XXXXXX,USERID=Y
C=ADDUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=Y
C=ADDUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=Y
C=ADDUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=N
C=ADDUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=N

The following is an example of the ADDUSER command:

C=ADDUSER,M=TEST,L=YOUR.PDS.LIBRARY,USERID=Y
  • In this example, USERID=Y specifies that the RACF user ID must be passed as an argument to the CLIST/REXX exec in M= member. The RACF user ID is added as provided from LDAP.

  • Pioneer receives the ADDUSER command through the LDAP and dynamically allocates PDS library dsn=’YOUR.PDS.LIBRARY’, member=TEST.

  • Pioneer Reads the PDS(L=) member(M=). As mentioned earlier, this must be a batch job to execute REXX/ CLIST. The following is a sample JCL:
    //REXXBTH JOB,SYSTEMS,CLASS=A,MSGCLASS=X,
    // MSGLEVEL=(1,1),REGION=4096K,NOTIFY=&SYSUID
    //STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=20
    //SYSTSPRT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //SYSUDUMP DD SYSOUT=*
    //SYSPROC DD DSN=PIONEER.CLIST.LIBRARY,DISP=SHR
    //SYSTSIN DD *
  • Pioneer then adds %TEST (value in M= parameter) USERID (RACF USERID) as input to SYSSTSIN DD statement to execute %TEST

  • Pioneer punches each of the above JCL statements and the %TEST USERID statement to the z/OS Intrdr.

  • Pioneer closes library dsn=’YOUR.PDS.LIBRARY’, member=TEST

  • Pioneer frees library dsn=’YOUR.PDS.LIBRARY’, member=TEST. The % TEST Rexx list checks for the USERID argument and processes further as post process.

  • A simple Rexx clist (for example, TEST) is as follows:
    /* rexx */
    Arg p1

    When this rexx clist is executed, p1 contains the USERID passed. The Rexx list then passes this User ID as desired by your programmer.

ALTUSER Command in Post-Processing

If you require post-processing only for the ALTUSER command, then you must add only one of the following valid configuration entries to the <HLQ>.PIONEER.CONTROL.FILE file:
C=ALTUSER,M=XXXXXX,L=XXX.XXX.XXX,USERID=Y
C=ALTUSER,L=XXX.XXX.XXX,M=XXXXXX,USERID=Y
C=ALTUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=Y
C=ALTUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=Y
C=ALTUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=N
C=ALTUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=N

The following is an example of the ALTUSER command:

C=ALTUSER,M=TEST,L=YOUR.PDS.LIBRARY,USERID=Y
  • In this example, USERID=Y specifies that the RACF user ID must be passed as an argument to the CLIST/REXX exec in M= member. The RACF user ID is added as provided from LDAP.

  • Pioneer receives the ALTUSER command through the LDAP and dynamically allocates PDS library dsn=’YOUR.PDS.LIBRARY’, member=TEST.

  • Pioneer reads the PDS(L=) member(M=). The following is a sample JCL:
    //REXXBTH JOB,SYSTEMS,CLASS=A,MSGCLASS=X,
    // MSGLEVEL=(1,1),REGION=4096K,NOTIFY=&SYSUID
    //STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=20
    //SYSTSPRT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //SYSUDUMP DD SYSOUT=*
    //SYSPROC DD DSN=PIONEER.CLIST.LIBRARY,DISP=SHR
    //SYSTSIN DD *
  • Pioneer adds %TEST (value in M= parameter) USERID (RACF USERID) as input to SYSSTSIN DD statement to execute %TEST

  • Pioneer punches each of the above JCL statements and the %TEST USERID statement to the z/OS Intrdr.

  • Pioneer closes library dsn=’YOUR.PDS.LIBRARY’, member=TEST

  • Pioneer frees library dsn=’YOUR.PDS.LIBRARY’, member=TEST. The % TEST Rexx list checks for the USERID argument and processes further as post process.

  • A simple Rexx clist (for example, TEST) is as follows:
    /* rexx */
    Arg p1

    When this rexx clist is executed, p1 contains the USERID passed. The Rexx list then passes this User ID as desired by your programmer.

DELUSER Command in Post-Processing

If you require post-processing only for the DELUSER command, then you must add only one of the following valid configuration entries to the <HLQ>.PIONEER.CONTROL.FILE file:
C=DELUSER,M=XXXXXX,L=XXX.XXX.XXX,DEL=Y
C=DELUSER,L=XXX.XXX.XXX,M=XXXXXX,DEL=N
C=DELUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=Y
C=DELUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=Y
C=DELUSER,M=XXXXXX,L=XXX.XXX.XXX,CMD=N
C=DELUSER,L=XXX.XXX.XXX,M=XXXXXX,CMD=N

The following is an example of the DELUSER command:

C=DELUSER,M=TESTD,L=YOUR.PDS.LIBRARY,DEL=Y

In this example, the user ID is deleted from RACF and the job or script described in M=,L= is executed. The RACF user ID is passed as an argument to REXX exec as described in the examples for the ADDUSER and ALTUSER commands.

The following is another example of the DELUSER command:

C=DELUSER,M=TESTD,L=YOUR.PDS.LIBRARY,DEL=N

In this example, the user ID is not deleted from RACF and the job or script described in M=,L= is executed. The RACF user ID is passed as an argument to REXX exec as described in the examples for the ADDUSER and ALTUSER commands.

CONNECT Command in Post-Processing

If you require post-processing only for the CONNECT command, then you must add only one of the following valid configuration entries to the <HLQ>.PIONEER.CONTROL.FILE file:
C=CONNECT,M=XXXXXX,L=XXX.XXX.XXX,CMD=Y
C=CONNECT,L=XXX.XXX.XXX,M=XXXXXX,CMD=Y
C=CONNECT,M=XXXXXX,L=XXX.XXX.XXX,CMD=N
C=CONNECT,L=XXX.XXX.XXX,M=XXXXXX,CMD=N
C=CONNECT,M=XXXXXX,L=XXX.XXX.XXX,USERID=Y
C=CONNECT,L=XXX.XXX.XXX,M=XXXXXX,USERID=Y

The following is an example of the CONNECT command:

C=CONNECT,M=TEST,L=YOUR.PDS.LIBRARY,USERID=Y

This example specifies that for each CONNECT command execution, the job or script described in M=,L= is executed and the RACF user ID is passed as an argument to REXX exec as described in the examples for the ADDUSER and ALTUSER commands.

The following is another example of the CONNECT command:

C=CONNECT,M=TEST,L=YOUR.PDS.LIBRARY,CMD=Y

This example specifies that for each CONNECT command execution, the job or script described in M=,L= is executed and the RACF command is passed as an argument to REXX exec. A maximum of 69 characters from the CONNECT command is passed to REXX exec.

REMOVE Command in Post-Processing

If you require post-processing only for the REMOVE command, then you must add only one of the following valid configuration entries to the <HLQ>.PIONEER.CONTROL.FILE file:
C=REMOVE,M=XXXXXX,L=XXX.XXX.XXX,CMD=Y
C=REMOVE,L=XXX.XXX.XXX,M=XXXXXX,CMD=Y
C=REMOVE,M=XXXXXX,L=XXX.XXX.XXX,CMD=N
C=REMOVE,L=XXX.XXX.XXX,M=XXXXXX,CMD=N
C=REMOVE,M=XXXXXX,L=XXX.XXX.XXX,USERID=Y
C=REMOVE,L=XXX.XXX.XXX,M=XXXXXX,USERID=Y

The following is an example of the REMOVE command:

C=REMOVE,M=TEST,L=YOUR.PDS.LIBRARY,USERID=Y

This example specifies that for each REMOVE command execution, the job or script described in M=,L= is executed and the RACF user ID is passed as an argument to REXX exec as described in the examples for the ADDUSER and ALTUSER commands.

The following is another example of the CONNECT command:

C=REMOVE,M=TEST,L=YOUR.PDS.LIBRARY,CMD=Y

This example specifies that for each REMOVE command execution, the job or script described in M=,L= is executed and the RACF command is passed as an argument to REXX exec. A maximum of 69 characters from the REMOVE command is passed to REXX exec.