Show TOC

Integration externer TabellenLocate this document in the navigation structure

Implementieren Sie eine Klasse, die das Interface IF_PERS_EXTERNAL_TABLE realisiert, um eine externe Tabelle, die bereits benutzerspezifische Daten enthält, für die Benutzer- bzw. Rollenpflege zugänglich zu machen.

Verwenden Sie die Klasse CL_SUPER_PERS_ACCESS, um das Interface zu implementieren. Von dieser Klasse können alle nötigen Methoden geerbt werden. Es ist aus Kompatibilitätsgründen empfehlenswert, die eigene Implementation immer von dieser Klasse abzuleiten. Dadurch kann die Stabilität bei eventuellen Erweiterungen des Interfaces besser gewährleistet werden.

Im Folgenden wird kurz die Bedeutung der enthaltenen Methoden erläutert.

Tabelle 1: Kopieren von Benutzern: Methode USER_COPY
Parameter Typ Beschreibung
P_USER_SOURCE UNAME Name des Quellbenutzers
P_USER_TARGET UNAME Name des Zielbenutzers
P_PERS_KEY SPERS_KEY Schlüssel für das Personalisierungsobjekt
P_NO_BUFFER CHAR1 Kennzeichen für die Umgehung der Pufferung
Tabelle 2: Löschen von Benutzern: Methode USER_DELETE
Parameter Typ Beschreibung
P_USER UNAME Name des Benutzers, dessen Personalisierungsdaten gelöscht werden sollen
P_PERS_KEY SPERS_KEY Schlüssel für das Personalisierungsobjekt
Tabelle 3: Umbenennen von Benutzern: Methode USER_RENAME
Parameter Typ Beschreibung
P_USER_SOURCE UNAME Alter Benutzername
P_USER_TARGET UNAME Neuer Benutzername
P_PERS_KEY SPERS_KEY Schlüssel für das Personalisierungsobjekt
Tabelle 4: Aufrufen eines Dialoges zum Benutzer: Methode USER_COPY
Parameter Typ Beschreibung
P_UNAME UNAME Name des Quellbenutzers
P_PERS_KEY SPERS_KEY Schlüssel für das Personalisierungsobjekt
P_COMMIT CHAR1

Kennzeichen für die Pufferung:

Wenn das Kennzeichen auf 'X' gesetzt ist, werden die Daten nicht gepuffert.

Tabelle 5: Transport von Rollen: Methode USER_COPY
Parameter Typ Beschreibung
P_ROLE_NAME AGR_NAME Name der zu transportierenden Rolle
P_PERS_KEY SPERS_KEY Schlüssel für das Personalisierungsobjekt
P_ORDER TRKORR Transportauftrag, mit dem die Daten transportiert werden
Dialog, Löschen, Kopieren und Umbenennen von Rollen

Die Methoden für den Dialog, das Löschen, Kopieren und Umbenennen von Rollen müssen analog implementiert werden.

Dialog für Daten zum System

Die Dialogmethode zur Systemebene kann analog zu der Methode zur Benutzer- und Rollenebene implementiert werden.

Transport von Daten zum System

Die Methode zum Transport von Daten zur Systemebene kann analog zur entsprechenden Methode auf Rollenebene implementiert werden.

Speichern des Puffers

Mit Hilfe dieser Methode werden alle Daten vom Puffer auf die Datenbank geschrieben.

Hinweis

Implementieren Sie die Methode SAVE_BUFFER. Für die Integration in die Benutzer- bzw. Rollenpflege wird eine Pufferung der Daten benötigt.

Ableiten der eigenen Interface-Implementation

Die Implementation der eigenen Zugriffsmethoden kann mit Hilfe von Vererbung realisiert werden.

Dazu steht die Klasse CL_SUPER_PERS_ACCESS zur Verfügung. In der eigenen abgeleiteten Klasse müssen Sie lediglich den Konstruktor implementieren. Weisen Sie im Konstruktor die Bezeichner für den Tabellennamen und für das Feld zu, das den Benutzer- bzw. Rollennamen enthält. Erzeugen Sie für den Zugriff dynamisch eine Kopfzeile und eine interne Tabelle.

In der Beispielklasse SPERSD_REUSE_EXTERNAL ist dies für die Tabelle SPERS_FAV realisiert.

method CONSTRUCTOR.
* ...
  data: l_fieldname type fieldname.

* set types for buffer table
  types: t_buffer_table_user type standard table of spersd_fav
                             with default key.
  types: t_buffer_line_user type spersd_fav.

  types: t_buffer_table_role type standard table of spersd_fav
                             with default key.
  types: t_buffer_line_role type spersd_fav.

* set user table name
  table_user = 'SPERSD_FAV'.
  field_user = 'UNAME'.

* set user table name
  table_role = 'SPERSD_FAV'.
  field_role = 'ROLE'.

* create buffer table and work area
  create data buffer_table_user type t_buffer_table_user.
  create data buffer_line_user type t_buffer_line_user.

* create buffer table and work area
  create data buffer_table_role type t_buffer_table_role.
  create data buffer_line_role type t_buffer_line_role.

* set hidden fields for generic dialog
  l_fieldname = 'MANDT'.
  append l_fieldname to dialog_fields_hide.
  l_fieldname = 'UNAME'.
  append l_fieldname to dialog_fields_hide.
  l_fieldname = 'ROLE'.
  append l_fieldname to dialog_fields_hide.
  l_fieldname = 'NUM'.
  append l_fieldname to dialog_fields_hide.

endmethod.

In dem Beispiel werden zunächst die Tabellentypen für die benutzer- und die rollenabhängigen Daten definiert und die entsprechenden Puffertabellen angelegt. Außerdem werden die Namen der Tabellenfelder spezifiziert, die bei Benutzung des generischen Dialogs nicht angezeigt werden sollen.