Startseite
Downloads
Lexikon
Sonstiges
Links
Kontakt
Gästebuch
Statistics
Disclaimer
Syntax
...................               
alg. = ''      /* must be first */
alg._parm_1 = ...                 
alg._parm_2 = ...                 
...................               
alg._parm_n = ...                 
alg._seg_1._parm_1 = ...          
alg._seg_1._parm_2 = ...          
...................               
alg._seg_m._parm_n = ...          
...................               
ret = AltgroupTpl()               
rc = Altgroup()                   
Beschreibung
Ändern einer bereits definierten RACF-Gruppe, Vergeben bzw. Löschen Profil-Eigenschaften und/oder Profil-Segmenten für diverse Subsysteme unter RACF
Aufrufparameter
keine
Standardwerte
keine
Rückgabewerte
RC
Bedeutung
0
RACF-Gruppe erfolgreich im RACF geändert.
4
Ein Fehler oder ein Berechtigungsproblem wurde entdeckt aber Teile der Verarbeitung wurden durchgeführt.
8
Ein Fehler oder ein Berechtigungsproblem wurde entdeckt und Verarbeitung wurde abgebrochen.
12
Ein Systemfehler wurde entdeckt und Verarbeitung wurde abgebrochen.
Bemerkungen
Die hier beschriebene Version des RACF-Befehls ALTGROUP ist die Implementierung meiner REXX-Schnittstelle für RACF-Befehle: REXX Command Interface Facility, kurz RXCIF genannt.
Return Codes sind vom RACF-Befehl ALTGROUP übernommen worden.
RXCIF für ALTGROUP besteht aus 4 internen Funktionen:
  • SetOp - Erstellen des Aufruf-Parameters auf Grund von Zuweisungen für eine befehlsabhängige Punktvariable (hier alg.) und der Befehlsschablone.
  • AltgroupPrepare - eine optionale Beschreibungsfunktion. Sie kann die Vorbereitung und die Zuordnung der Stem-Variablen alg. beinhalten.
  • AltgroupTpl - Schablone für die Festlegung der Syntax für die Zuordnungsparameter des RACF-Befehls.
  • Altgroup - Zusammenlegung der Aufrufparametern und Ausführung des Befehls.
Die interne Prozedur SetOp muss in einem REXX-Programm nur einmal vorkommen auch, wenn mehrere unterschiedliche Befehlsprozeduren verwendet werden.
Die Vorbereitung der Stem-Variablen alg. muss immer vor dem Aufruf der Hauptfunktion Altgroup stattfinden. Und zwar immer dann, wenn sich die Aufrufparameter seit dem vorherigen Aufbau geändert haben.
Die Musterprozedur für die Zuordnungsparameter (AltgroupTpl) muss mindestens ein mal pro REXX-Prozedur aber immer nach der eventuellen Änderung aufgerufen werden.
Die Ausgabe der Beispielprozeduren wurde aus Übersichtlichkeitsgründen in die Zeilen geteilt und mit Fortfürungszeichen (+) versorgt.

Sourcecode

/*=============( Zuordnung der Operanden für den Befehl )=============*/
SetOp: Procedure
Parse Arg vpref 3 vsuff 1 value, tpl . 1 tpref "(" .

If value = '' Then Return ''
If vpref = "NO" & vsuff = tpref ! value = tpref Then Return value

Return Insert( value, tpl, Pos( "(", tpl ))
/**** End SetOp ****/
/*==========( Prepare operands for RACF-TSO-Befehl ALTGROUP )=========*/
AltgroupPrepare: Procedure Expose alg.
/*------( Prepare Base data values of the RACF command ALTGROUP )-----*/
alg._prefix                  /* Subsystem-prefix                      */
alg._cmdName = "ALTGROUP"    /* Command name: ALTGROUP | ALG          */
alg._grpList = ""            /* Group list in paranthasis             */
alg._at = ""                 /* [node].userid ...                     */
alg._onlyAt = ""             /* [node].userid ...                     */
alg._csdata = ""             /* fld-name(value) | NOfld-name | NODATA */
alg._data = ""               /* 'installation-defined-data' | NODATA  */
alg._model = ""              /* dsname | NOMODEL                      */
alg._owner = ""              /* userid or group-name                  */
alg._supGroup = ""           /* superior group name                   */
alg._termuacc = ""           /* TERMUACC | NOTERMUACC                 */
/*-----( Prepare DFP segment values of the RACF command ALTGROUP )----*/
alg._dfp = ""                /* DFP-Segment: blank | NODFP            */
alg._dfp._dataAppl = ""      /* application-name | NODATAAPPL         */
alg._dfp._dataClas = ""      /* data-class-name | NODATACLAS          */
alg._dfp._mgmtClas = ""      /* management-class-name | NOMGMTCLAS    */
alg._dfp._storClas = ""      /* storage-class-name | NOSTORCLAS       */
/*----( Prepare OMVS segment values of the RACF command ALTGROUP )----*/
alg._omvs = ""               /* OMVS-Segment: blank | NOOMVS          */
alg._omvs._autogid = ""      /* AUTOGID                               */
alg._omvs._gid = ""          /* group-identifier | NOGID              */
alg._omvs._gidShared = ""    /* SHARED                                */
/*-----( Prepare OVM segment values of the RACF command ALTGROUP )----*/
alg._ovm = ""                /* OVM-Segment: blank | NOOVM            */
alg._ovm._gid = ""           /* group-identifier | NOGID              */
/*-----( Prepare TME segment values of the RACF command ALTGROUP )----*/
alg._tme = ""                /* TME-Segment: blank | NOTME            */
alg._tme._roles = ""         /* profile-name list | NOROLES           */
alg._tme._addroles = ""      /* profile-name list                     */
alg._tme._delroles = ""      /* profile-name list                     */

Return alg._grpList
/**** End AltgroupPrepare ****/
/*========( Muster für Zuordnungsparameter von TSO ALTGROUP )=========*/
AltgroupTpl: Procedure Expose alg.

alg._tpl. = ''
/*-----( Define Base Data template of the RACF command ALTGROUP )-----*/
alg._tpl._grpList       = "()"                
alg._tpl._at            = "AT()"                   
alg._tpl._onlyAt        = "ONLYAT()"           
alg._tpl._csdata        = "CSDATA()" 
alg._tpl._data          = "DATA()" 
alg._tpl._model         = "MODEL()"
alg._tpl._owner         = "OWNER()"
alg._tpl._supGroup      = "SUPGROUP()"
/*----( Define DFP segment template of the RACF command ALTGROUP )----*/
alg._tpl._dfp           = "DFP()"
alg._tpl._dfp._dataAppl = "DATAAPPL()"
alg._tpl._dfp._dataClas = "DATACLAS()"
alg._tpl._dfp._mgmtClas = "MGMTCLAS()"
alg._tpl._dfp._storClas = "STORCLAS()"
/*----( Define OMVS segment template of the RACF command ALTGROUP )---*/
alg._tpl._omvs          = "OMVS()"
alg._tpl._omvs._gid     = "GID()"
/*----( Define OVM segment template of the RACF command ALTGROUP )----*/
alg._tpl._ovm           = "OVM()"
alg._tpl._ovm._gid      = "GID()"
/*----( Define TME segment template of the RACF command ALTGROUP )----*/
alg._tpl._tme           = "TME()"
alg._tpl._tme._roles    = "ROLES()"
alg._tpl._tme._addroles = "ADDROLES()"
alg._tpl._tme._delroles = "DELROLES()"

Return ''
/**** End AltgroupTpl ****/
/*===========( Command to create the TSO command ALTGROUP )===========*/
Altgroup: Procedure Expose alg.                                       

/*------( Create DFP segment part of the RACF command ALTGROUP )------*/
dfp  = SetOp( alg._dfp._dataAppl, alg._tpl._dfp._dataAppl ),
       SetOp( alg._dfp._dataClas, alg._tpl._dfp._dataClas ),
       SetOp( alg._dfp._mgmtClas, alg._tpl._dfp._mgmtClas ),
       SetOp( alg._dfp._storClas, alg._tpl._dfp._storClas )
/*------( Create OMVS segment part of the RACF command ALTGROUP )-----*/
omvs = SetOp( alg._omvs._autogid  , alg._tpl._omvs._autogid   ),
       SetOp( alg._omvs._gid      , alg._tpl._omvs._gid       ),
       SetOp( alg._omvs._gidShared, alg._tpl._omvs._gidShared )
/*------( Create OVM segment part of the RACF command ALTGROUP )------*/
ovm  = SetOp( alg._ovm._gid, alg._tpl._ovm._gid )
/*------( Create TME segment part of the RACF command ALTGROUP )------*/
tme  = SetOp( alg._tme._roles, alg._tpl._tme._roles ) ,
       SetOp( alg._tme._addroles, alg._tpl._tme._addroles ) ,
       SetOp( alg._tme._delroles, alg._tpl._tme._delroles ) 
/*==================( Generate RACF command ALTGROUP )================*/
cmd  = Space( SetOp( alg._grpList  , alg._tpl._grpList   ),
              SetOp( alg._at       , alg._tpl._at        ),
              SetOp( alg._onlyAt   , alg._tpl._onlyAt    ),
              SetOp( alg._csdata   , alg._tpl._csdata    ),
              SetOp( alg._data     , alg._tpl._data      ),
              SetOp( alg._model    , alg._tpl._model     ),
              SetOp( alg._owner    , alg._tpl._owner     ),
              SetOp( alg._supGroup , alg._tpl._supGroup  ),
              SetOp( alg._termuacc , alg._tpl._phrase    ),
              SetOp( Strip( alg._dfp dfp  ), alg._tpl._dfp  ),
              SetOp( Strip( alg._omvs omvs), alg._tpl._omvs ),
              SetOp( Strip( alg._ovm ovm  ), alg._tpl._ovm  ),
              SetOp( Strip( alg._tme tme  ), alg._tpl._tme  ))
      
Say "ALTGROUP" cmd                                                                 
Address TSO "ALTGROUP" cmd                                          
                                                                        
Return rc                                                               
/**** End Altgroup ****/

Beispiel 1

/* REXX ***************************************************************/
/* Program name: ALTGROUP                                             */
/* Author......: Janosch R(exx) Kowalczyk                             */
/**********************************************************************/
alg. = ''
/* Base data */
alg._grpList = "GPSYSMVS"
alg._data = "'MVS-SYSTEMPROGRAMMIERUNG HAUPTGRUPPE'"                          
alg._owner = "GPSYS"                         
alg._supGroup = "GPSYS"                      
alg._csdata = "CSROLE(SYSPROG1)"                          

/* Segmente */
alg._dfp._dataAppl = "NODATAAPPL"
alg._dfp._dataClas = "DCSYSMVS"
alg._dfp._mgmtClas = "STANDARD"
alg._dfp._storClas = "STANDARD"

alg._omvs._gid = "NOGID"

alg._tme._addroles = "STANDARD"
alg._tme._delroles = "SPECIAL"

ret = AltgroupTpl()
rc = Altgroup()

Exit
/**** End main procedure ****/

Ergebnis 1

ALTGROUP (GPSYSMVS) CSDATA(CSROLE(SYSPROG1)) DATA('MVS-SYSTEMPROGRAMMIERUNG HAUPTGRUPPE') +
         OWNER(GPSYS) SUPGROUP(GPSYS) DFP(NODATAAPPL DATACLAS(DCSYSMVS) MGMTCLAS(STANDARD) +
         STORCLAS(STANDARD)) OMVS(NOGID) TME(ADDROLES(STANDARD) DELROLES(SPECIAL))
Return code (RC) from ALTGROUP is 0

Beispiel 2

/* REXX ***************************************************************/
/* Program name: ALTGROUP                                             */
/* Author......: Janosch R(exx) Kowalczyk                             */
/**********************************************************************/
alg. = ''
/* Base data */
alg._grpList = "GPTODEL"
alg._data = "'BENUTZER ZUM LOESCHEN. QUARANTAENE-GRUPPE'"                          
alg._owner = "GPFUN"                         
alg._supGroup = "GPFUN"                      
alg._csdata = "CSDELAY(180)"            

ret = AltgroupTpl()
rc = Altgroup()

Exit
/**** End main procedure ****/

Ergebnis 2

ALTGROUP (GPTODEL) CSDATA(CSDELAY(180)) DATA('BENUTZER ZUM LOESCHEN. QUARANTAENE-GRUPPE') +
         OWNER(GPFUN) SUPGROUP(GPFUN)
Return code (RC) from ALTGROUP is 0
Your privacy: This web site has no cookies, no advertising and does not provide access data to anyone for any reason.
Copyright © Janosch R. Kowalczyk 1999, 2010. All rights reserved.
Most recent revision on 19 Aug 2010 (231) - 19:42:32.
Jakoxx Logo
Meine REXX-Regeln
RXCIF-Prozeduren:
Meine Prozeduren
Built-in functions
Standard Return Codes