Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Beispiel 3: Zugriffsbedingung löschen

&pagelevel(4)&pagelevel

Das im Beispiel 1 erzeugte und in Beispiel 2 geänderte Guard TEST-GUA muss ein weiteres Mal geändert werden:

  • Der Mitarbeiter JOHN verlässt die Firma. Seine Zugriffsbedingungen sollen aus dem Guard entfernt werden.

Lösung

 *        **************************************************************
 *        * ---------------------------------------------------------- *
 *        *                                                            *
 *        * Makro REMSAC: Zugriffsbedingungen entfernen                *
 *        * ===========================================                *
 *        *                                                            *
 *        * ---------------------------------------------------------- *
 *        **************************************************************
 *
 GUA3     CSECT
 *
 *        **************************************************************
 *        * ---------------------------------------------------------- *
 *        * Makro MOVE                                                 *
 *        * ==========                                                 *
 *        * Aufgabe: Move Parameterbereich PARRACL nach PARRACC.       *
 *        * Zweck:   Mit diesem Makro wird vor jedem Aufruf des        *
 *        *          Makros REMSAC der in Register 1 zu uebergebende   *
 *        *          Parameterbereich PARRACC neu initialisiert.       *
 *        * ---------------------------------------------------------- *
 *        **************************************************************
 *
          MACRO
         MOVE
          LA    R@TO,PARRACC
          LA    R@TOL,PROX#
          LA    R@FR,PARRACL
          LA    R@FRL,PROX#
         ICM   R@FRL,8,=C' '
          MVCL  R@TO,R@FR
         MEND
 *
 *        **************************************************************
 *
 R@TO     EQU   6               Zieladresse
 R@TOL    EQU   7               Zielfeldlaenge
 R@FR     EQU   8               Quelladresse
 R@FRL    EQU   9               Quellfeldlaenge / Fuellzeichen
 R@BASE   EQU   10              Basisregister
          BALR  R@BASE,0
          USING *,R@BASE
 *
 *        **************************************************************
 *        * 1. Der Mitarbeiter JOHN verlaesst die Firma. Seine         *
 *        *    Zugriffsbedingungen werden aus dem Guard entfernt.      *
 *        **************************************************************
 *
          MOVE                                  Parameterinitialisierung
          REMSAC MF=M,                                                  -
                GUARD='TEST-GUA',                                       -
                SUBTYPE=*USER,                                          -
                SUBIDS=('JOHN    ')
          REMSAC MF=E,PARAM=PARRACC
          CLC   PROXMRET,=Y(PROPSUCC)
          BNE   RCNOTOK
 *
         BE    ENDE
 *
 *        **************************************************************
 *        * Fehlerbehandlung
 *        **************************************************************
 *
 RCNOTOK  EQU   *
 *        Die moeglichen Returncode-Werte sind im Makro MSGGUAD
 *        aufgelistet
         B     ENDE
 *
 ENDE     EQU   *
         TERM
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Parameterdeklarationen                                     *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
 *        Dieser Parameterbereichs wird bei Aufruf des Makros REMSAC
 *        im Register 1 uebergeben.
 *
 PARRACC  DS    0F
          REMSAC MF=C
 *
 *        Dieser Parameterbereich wird vor Aufruf des Makros REMSAC
 *        verwendet, um den Parameterbereich PARRACC neu zu
 *        initialisieren.
 *
 PARRACL  DS    0F
          REMSAC MF=L,                                                  -
                SUBTYPE=*USER,                                          -
                GUARD='                                        '
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Deklarationen der Returncodes                              *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
         MSGGUAD MF=D
 *
 *        **************************************************************
 *        *------------------------------------------------------------*
 *        * Deklarationen globaler Variablen                           *
 *        *------------------------------------------------------------*
 *        **************************************************************
 *
         SACMGMT MF=D,XPAND=PARAM
 *
          END 

Ergebnis

Nach Ablauf des Programms hat das geänderte Guard TEST-GUA folgenden Inhalt:

:PUB1:$TESTUID.TEST-GUA
   User   ANNE
    Date      EX ( <2017-10-15,2017-11-15> )
   User   MARY
    Weekday   IN ( MO, TU, WE )
   User   PAUL
    Date      IN ( <2017-07-01,2017-09-30> )
   Group  REVIEWER
    Time      IN ( <09:00,15:00> )
    Date      IN ( <2017-08-23,2017-08-24> ,
                   <2017-09-09,2017-09-10> )
   Group  TEAMWORK
    Time      IN ( <09:00,15:00> )
    Date      IN ( <2017-08-23,2017-08-24> ,
                   <2017-09-09,2017-09-10> )
   Alluser
    Time      IN ( <07:00,19:00> )
    Weekday   EX ( SA, SU )