Floorplan Manager (ABAP)
Relevante Klassen
Alle Feeder-Interfaces beinhalten das Interface IF_FPM_GUIBB, das die beiden Methoden INITIALIZE und GET_PARAMETER_LIST umfasst. Beide Methoden werden nur während der Initialisierungsphase des GUIBBs aufgerufen.
Übersicht Feeder-Klassen
Feeder-Klassen bilden die Schnittstelle zwischen der Anwendungslogik und den GUIBB zur Darstellung derUI-Informationen innerhalb der Floorplan-Manager-Anwendung.
Jeder GUIBB benötigt für die Bereitschellung von Daten eine Feeder-Klasse.
Alle Feeder-Interfaces beinhalten das Interface IF_FPM_GUIBB, das die beiden Methoden GET_PARAMETER_LIST und INITIALIZE umfasst. Beide Methoden werden nur während der Initialisierungsphase des GUIBBs aufgerufen.
GET_PARAMETER_LIST: Eigene Konfigurationsparameter verarbeiten ( z.B. read only )
INITIALIZE: Wird nach GET_PARAMETER_LIST aufgerufen. Nutzung z.B. zum Laden von Anwendungsobjekten (von der DB) / Sperren setzen etc.
Methoden mit lediglich unterschiedlicher Signatur:
CHECK_CONFIG i.d.R. irrelevant GET_DEFAULT_CONFIG i.d.R. irrelevant GET_DEFINITION Wird nach INITIALIZE aufgerufen Bestimmt Aufbau Baustein (z.B. welche Eingabefelder hat das Form ) GET_DATA Bestimmt Inhalt der Oberfläche ( z.B. Text in Textfeld eines Forms ) PROCESS_EVENT Verarbeitung von Benutzereingabe (z.B. Suchknopf wurde gedrückt) ( evtl. auch Ereignisse von anderen FPM Komponenten z.B. Refresh) FLUSH Benutzereingaben von der Oberfläche in die Anwendung übernehmen
Standard-Interface IF_FPM_GUIBB
Feederklassen Programmstart
- GET_PARAMETER_LIST: Eigene Konfigurationsparameter verarbeiten ( z.B. read only )
- INITIALIZE: Wird nach GET_PARAMETER_LIST aufgerufen. Nutzung z.B. zum Laden von Anwendungsobjekten (von der DB) / Sperren setzen etc.
Feederklassen Programmablauf
- Flush -> Daten von Oberfläche an Anwendung übertragen
- Process_event-> Besondere Ereignisse ( z.B. Knopfdruck ) verarbeiten
- Get_data-> Oberfläche mit aktuellen Daten aus Anwendung versorgen
Beispielimplementierungen
IF_FPM_GUIBB_LIST->GET_DEFINITION
Signatur der Methode:
EO_FIELD_CATALOG - Enthält Feldkatalog in Form eines Strukturtyps, der alle Komponenten umfasst, die als Felder im Formular verwendet werden können ET_FIELD_DESCRIPTION - Liste mit Feldbeschreibungen und beschreibenden Informationen zu den einzelnen Feldern ET_ACTION_DEFINITION - Liste mit möglichen Aktionen
method IF_FPM_GUIBB_LIST~GET_DEFINITION.
DATA: lt_field_cat TYPE ztt_list,
ls_field_descr TYPE LINE OF fpmgb_t_listfield_descr,
ls_action_def type line of fpmgb_t_actiondef.
eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( lt_field_cat ).
ls_field_descr-name = 'LFDNR'.
ls_field_descr-read_only = abap_true.
ls_field_descr-condense = 'X'.
APPEND ls_field_descr TO et_field_description.
ls_action_def-id = 'SAVEBUTTON'.
ls_action_def-text = text-001.
ls_action_def-tooltip = text-001.
ls_action_def-imagesrc = 'ICON_SYSTEM_SAVE'.
APPEND ls_action_def TO et_action_definition.
endmethod.
Anwendungsdaten in Model-Klasse
Empfehlung: Singleton (andere möglich, aber meist umständlich.
UIBB / User Interface Building Blocks
GUIBB / Generische UI Building Blocks
GUIBB-Komponenten inkl. zugehöriger Feeder-Interfaces
- FPM_FORM_UIBB --> IF_FPM_GUIBB_FORM
- FPM_LIST_UIBB --> IF_FPM_GUIBB_LIST
- FPM_SEARCH_UIBB --> IF_FPM_GUIBB_SEARCH
Nur in den seltensten Fällen muss eine eigene Komponente angelegt werden.
Pakete
Paket | APB_FPM |
Kurzbeschr. | Floorplan Manager |
Anwendungskomponente | BC-WD-CMP-FPM Floorplanmanager Web Dynpro ABAP |
Oberpaket | SWDP |
Softwarekomp. | SAP_UI Release 740, SP 20 |
Unterpakete für Test- und Demo-Daten:
- APB_FPM_TEST
- APB_FPM_DEMO
Quellen und Tutorials
https://blogs.sap.com/2017/05/04/getting-started-with-the-floorplan-manager/
https://blogs.sap.com/2017/11/14/the-fpm-event-phase-model-easy-going-or-already-lost/
Developer Guides: https://archive.sap.com/documents/docs/DOC-61783
Floorplan Manager for WebDynpro ABAP 7.4 SP08 https://archive.sap.com/documents/docs/DOC-59244