Verwendung der generischen Ablagetabelle
Um Daten in der generischen Ablage zu speichern, werden die Methoden der Klasse CL_PERS_ADMIN verwendet.
Klasse CL_PERS_ADMIN | |
get_data |
Lesen der Daten zum Benutzer |
set_data |
Schreiben der Daten zum Benutzer |
get_data_role |
Lesen der Daten zu einer Rolle |
set_data_role |
Schreiben der Daten zu einer Rolle |
get_data_system |
Lesen der Daten zum System |
set_data_system |
Lesen der Daten zum System |
save_buffer |
Speichern der gepufferten Daten |
get_object |
Holen eines Personalisierungsobjektes zum Benutzer |
get_object_role |
Holen eines Personalisierungsobjektes zu einer Rolle |
get_object_system |
Holen eines Personalisierungsobjektes zum System |
user_dialog |
Dialogaufruf für Objekte zu Benutzern |
role_dialog |
Dialogaufruf für Objekte zu Rollen |
system_dialog |
Dialogaufruf für Objekte zum System |
Grundsätzlich gibt es zwei Arten, auf die Personalisierungsdaten zuzugreifen. Die Daten können direkt gelesen bzw. geschrieben werden oder über ein ABAP-Objekt manipuliert werden.
Zum direkten Schreiben von Personalisierungsdaten werden die Methoden SET_DATA, SET_DATA_ROLE und SET_DATA_SYSTEM verwendet.
In dem Beispiel werden die Daten aus demo_data unter dem Schlüssel DEMO_KEY zu dem Benutzer SY-UNAME abgelegt.
Parameter |
Typ |
Bedeutung |
p_pers_key |
SPERS_KEY |
Schlüssel für die Personalisierungsdaten: Dieser Schlüssel wurde bei der Registrierung des Personalisierungsobjektes vergeben. |
p_uname |
UNAME |
Benutzername, zu dem die Daten gelesen werden sollen. |
p_pers_data |
ANY |
Personalisierungsdaten |
p_write_through |
CHAR1 |
Flag für die Umgehung des Pufferungsmechanismus: Wenn das Flag auf 'X' steht, werden die Daten sofort auf die Datenbank geschrieben. |
p_append |
CHAR1 |
Flag zum Anhängen von Daten: Wenn das Flag auf 'X' steht, werden die Daten angehängt. Um die Daten später wieder zu lesen, muß dann eine interne Tabelle mit entsprechendem Zeilentyp verwendet werden. |
p_modify |
CHAR1 |
Flag zum Modifizieren von Daten (interne Tabellen): Wenn das Flag gesetzt ist, werden die Daten in der Ablage, die in den vorgegebenen Schlüsselfeldern mit den mitgegebenen Daten identisch sind, ersetzt. Der Parameter kann nur in Verbindung mit p_append = 'X' verwendet werden. Die Schlüsselfelder werden im Parameter p_key_tab mitgegeben. |
p_key_tab |
SPERS_SELT |
Liste der Schlüsselfelder für die Modifikation |
Die Methoden SET_DATA_AGR und SET_DATA_SYSTEM können analog verwendet werden.
Zum direkten Lesen von Daten werden die Methoden GET_DATA, GET_DATA_AGR und GET_DATA_SYSTEM verwendet.
In dem Beispiel werden die Personalisierungsdaten unter dem Schlüssel DEMO_KEY zu dem Benutzer SY-UNAME in die Variable demo_data gelesen. Die Daten zu den Rollen, denen der Benutzer zugewiesen ist, befinden sich in der Tabelle demo_data_list.
Parameter |
Typ |
Bedeutung |
p_pers_key |
SPERS_KEY |
Schlüssel für die Personalisierungsdaten: Dieser Schlüssel wurde bei der Registrierung des Personalisierungsobjektes vergeben. |
p_uname |
UNAME |
Benutzername, zu dem die Daten gelesen werden sollen. |
p_user_data_only |
CHAR1 |
Wenn das Flag auf 'X' gesetzt ist, werden nur die Daten zum Benutzer gelesen. Die Daten an den zugewiesenen Rollen werden nicht gelesen. |
p_refresh_buffer |
CHAR1 |
Flag für die Umgehung des Pufferungsmechanismus: Wenn das Flag auf 'X' steht, werden die Daten direkt von der Datenbank gelesen. Der Puffer wird dabei ignoriert. |
p_pers_data |
ANY |
Personalisierungsdaten |
p_pers_data_list |
SPERS_ADT |
Personalisierungsdaten der Rollen, denen der Benutzer zugewiesen ist. Die Tabelle enthält den Namen der Rolle und eine Referenz auf die Personalisierungsdaten. |
p_sel_tab |
SPERS_SELT |
Tabelle mit Selektionsbedingungen (interne Tabellen): Die interne Tabelle enthält Feld-Wert-Kombinationen für die Selektion von Daten. |
p_sel_cond_and |
CHAR1 |
Und-Verknüpfung der Selektionsbedingungen |
Die Methoden GET_DATA_AGR und GET_DATA_SYSTEM können analog verwendet werden.
Falls die Personalisierungsdaten nicht direkt auf die Datenbank geschrieben wurden, können die gepufferten Daten mit der Methode SAVE_BUFFER gesichert werden. Beim Aufruf der Methode werden sämtliche Daten der Personalisierungsablage gesichert.
Zum Aufruf des Dialogs werden die Methoden USER_DIALOG, ROLE_DIALOG und SYSTEM_DIALOG verwendet.
In dem Beispiel wird ein Dialog zu dem Personalisierungsobjekt mit dem Schlüssel DEMO_KEY für den Benutzer SY-UNAME aufgerufen. Die Daten verbleiben zunächst im Puffer.
Parameter |
Typ |
Bedeutung |
p_pers_key |
SPERS_KEY |
Schlüssel für die Personalisierungsdaten: Dieser Schlüssel wurde bei der Registrierung des Personalisierungsobjektes vergeben. |
p_uname |
UNAME |
Benutzername, zu dem die Daten gelesen werden sollen. |
p_check_user |
CHAR1 |
Wenn das Flag auf 'X' gesetzt ist, wird der Benutzer auf Existenz überprüft. |
p_commit |
CHAR1 |
Flag für die Umgehung des Pufferungsmechanismus: Wenn das Flag auf 'X' steht, werden die Daten direkt auf die Datenbank geschrieben. |
Die Methoden ROLE_DIALOG und SYSTEM_DIALOG können analog verwendet werden.
Zum Löschen von Personalisierungsdaten aus der generischen Ablage stehen die Methoden DELETE_DATA_USER, DELETE_DATA_ROLE und DELETE_DATA_SYSTEM zur Verfügung.
Im Beispiel werden die Daten zum Benutzer SY-UNAME und dem Schlüssel DEMO_KEY gelöscht.
Parameter |
Typ |
Bedeutung |
p_pers_key |
SPERS_KEY |
Schlüssel für die Personalisierungsdaten: Dieser Schlüssel wurde bei der Registrierung des Personalisierungsobjektes vergeben. |
p_uname |
UNAME |
Benutzername, zu dem die Daten gelesen werden sollen. |
p_sel_tab |
SPERS_SELT |
Tabelle mit Selektionsbedingungen (interne Tabellen): Die interne Tabelle enthält Feld-Wert-Kombinationen für die Selektion von Daten.. |
p_sel_cond_and |
CHAR1 |
Und-Verknüpfung der Selektionsbedingungen |
p_buffer_only |
CHAR1 |
Wenn das Flag gesetzt wird, wird nur die Puffertabelle gelöscht. |
Die Methoden DELETE_DATA_ROLE und DELETE_DATA_SYSTEM können analog verwendet werden.
Zugriff auf die Personalisierungsdaten über ein ABAP-Objekt
Mit den Methoden GET_OBJECT, GET_OBJECT_AGR und GET_OBJECT_SYSTEM kann zu einem Schlüssel ein ABAP-Objekt gelesen werden, über das die Manipulation der Personalisierungsdaten ebenfalls möglich ist.
In dem Beispiel wird unter dem Schlüssel DEMO_KEY zu dem Benutzer SY-UNAME ein Personalisierungsobjekt in die Referenzvariable pers_objekt gelesen.
Über den Parameter P_USER_DATA_ONLY wird festgelegt, ob auch die Objekte zu den Rollen gelesen werden sollen, die dem Benutzer zugewiesen sind. Die Objekte zu den Rollen werden in dem Parameter P_OBJECTS_AGR ausgegeben.
Mit Hilfe des Parameters P_RFC kann eine RFC-Destination angegeben werden, über die die Daten gelesen werden sollen.
Das Personalisierungsobjekt gehört der Klasse CL_PERS_OBJECT_DATA an. Es sind die Methoden SET_DATA, GET_DATA, SAVE_OBJECT_DATA und DIALOG zum Zugriff auf die Daten vorhanden.
Schreiben der Daten über das ABAP-Objekt
Der Schreibzugriff auf die Daten eines Personalisierungsobjektes erfolgt über die Methode SET_DATA.
In dem Beispiel werden die Daten aus der Variable demo_data direkt in die zentrale Ablage geschrieben. Die Bedeutung der Parameter ist analog zum direkten Schreiben von Daten.
Lesen der Daten über das ABAP-Objekt
Der Lesezugriff auf die Daten eines Personalisierungsobjektes erfolgt mit der Methode GET_DATA.
In dem Beispiel werden die Daten des Personalisierungsobjektes von der Datenbank in das Feld demo_data gelesen. Die Bedeutung der Parameter ist analog zum direkten Lesen von Daten.
Aufruf des Pflegedialoges
Der Aufruf des Pflegedialoges zu einem Personalisierungsobjekt erfolgt mit der Methode DIALOG.
In dem Beispiel wird der Dialog zu einem Personalisierungsobjekt aufgerufen. Die Änderungen, die in den Daten vorgenommen wurden, werden direkt auf die Datenbank geschrieben, da der Parameter p_commit auf 'X' gesetzt wurde.
Um einen Dialog aufrufen zu können, muß zu dem Schlüssel des Personalisierungsobjektes ein Dialog definiert sein. Dazu muß ein entsprechender Funktionsbaustein implementiert werden.
Sichern der gepufferten Daten
Falls die Daten nicht direkt auf die Datenbank geschrieben wurden, können die Daten über die Methode SAVE_OBJECT_DATA gesichert werden. Die Methode hat den Parameter P_BACKGROUND. Ist der Parameter auf 'X' gesetzt, wird zur Speicherung der Daten ein Hintergrundprozeß gestartet.
Löschen von Daten
Zum Löschen von Daten steht die Methode DELETE_DATA zur Verfügung.
Im Beispiel werden die Daten ohne Selektionsparameter gelöscht.
Parameter |
Typ |
Bedeutung |
p_sel_tab |
SPERS_SELT |
Tabelle mit Selektionsbedingungen (interne Tabellen): Die interne Tabelle enthält Feld-Wert-Kombinationen für die Selektion von Daten. |
p_sel_cond_and |
CHAR1 |
Und-Verknüpfung der Selektionsbedingungen |
p_buffer_only |
CHAR1 |
Wenn das Flag gesetzt wird, wird nur die Puffertabelle gelöscht. |