...................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()
/*=============( 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