Show TOC

Implementation eines DialogsLocate this document in the navigation structure

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.

Hinweis

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).