
Um für den zentralen Zugriff auf die Personalisierungsdaten einen Dialog zur Verfügung zu stellen, muss ein Funktionsbaustein mit einer festgelegten Schnittstelle implementiert werden und bei der Registrierung des Schlüssels zu dem Personalisierungsobjekt hinterlegt werden.
FUNCTION BMENU_SETTINGS_EDIT.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(P_PERS_OBJECT) TYPE REF TO CL_PERS_OBJECT_DATA
*" REFERENCE(P_VIEW_MODE) TYPE CHAR1
*" EXCEPTIONS
*" DIALOG_CANCELED
*" PERS_OBJECT_ERROR
*"----------------------------------------------------------------------
* clear global data
clear d215_settings.
* set global structure
call method p_pers_object->get_data
exporting
p_reload_data = space
importing
p_pers_data = d215_settings
exceptions
data_type_error = 1
no_data_found = 2
internal_error = 3
others = 4.
case sy-subrc.
when 1 or 3 or 4.
raise pers_object_error.
endcase.
* set view mode
d215_view_mode = p_view_mode.
* call dialog
call screen 215 starting at 10 5.
case d215_okcode.
when okay_command.
* set object data
call method p_pers_object->set_data
exporting
p_pers_data = d215_settings
p_write_through = space
exceptions
data_type_error = 1
internal_error = 2
others = 3.
if sy-subrc <> 0.
raise pers_object_error.
endif.
when cancel_command.
raise dialog_canceled.
endcase.
endfunction.In dem Beispiel werden die Daten aus dem Personalisierungsobjekt ausgelesen und in eine Struktur für das Dynpro geschrieben.
Falls der Dialog den Pufferungsmechanismus unterstützen soll, dürfen die Daten beim Speichern nicht direkt auf die Datenbank geschrieben werden (Kennzeichen p_write_through muss auf space stehen).