Floorplan Manager (ABAP): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 41: | Zeile 41: | ||
# INITIALIZE: Wird nach GET_PARAMETER_LIST aufgerufen. Nutzung z.B. zum Laden von Anwendungsobjekten (von der DB) / Sperren setzen etc. | # INITIALIZE: Wird nach GET_PARAMETER_LIST aufgerufen. Nutzung z.B. zum Laden von Anwendungsobjekten (von der DB) / Sperren setzen etc. | ||
=== Feederklassen Programmablauf === | === Feederklassen Programmablauf / Event-Loop === | ||
# FLUSH -> Daten von Oberfläche an Anwendung übertragen | # FLUSH -> Daten von Oberfläche an Anwendung übertragen | ||
Zeile 96: | Zeile 96: | ||
Nur in den seltensten Fällen muss eine eigene Komponente angelegt werden. | Nur in den seltensten Fällen muss eine eigene Komponente angelegt werden. | ||
== Fehlerbehandlung == | |||
== | === Protokolle === | ||
Standard-Protokolle von SAP nutzen: | |||
{| class="wikitable" | |||
! Transaktion !! Beschreibung !! Anmerkungen | |||
|- | |||
| ST22 || Laufzeitfehler || | |||
|- | |||
| SM21 || Systemlog || | |||
|- | |||
| SLG1 || Anwendungslog || Für Floorplan Manager filtern nach: | |||
Objekt = <code>FLOORPLAN_MANAGER</code> | |||
Unterobjekt = <code>Runtime</code> | |||
|- | |||
| ST11 || Fehlerprotokolldatei || | |||
|} | |||
== Pakete == | |||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 112: | Zeile 131: | ||
| Softwarekomp. || SAP_UI Release 740, SP 20 | | Softwarekomp. || SAP_UI Release 740, SP 20 | ||
|} | |} | ||
Unterpakete für Test- und Demo-Daten: | Unterpakete für Test- und Demo-Daten: | ||
Zeile 118: | Zeile 136: | ||
* APB_FPM_TEST | * APB_FPM_TEST | ||
* APB_FPM_DEMO | * APB_FPM_DEMO | ||
== Quellen und Tutorials == | == Quellen und Tutorials == |
Version vom 7. August 2018, 16:33 Uhr
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 / Event-Loop
- 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; Entspricht PROCESS_BEFORE_OUTPUT
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.
Fehlerbehandlung
Protokolle
Standard-Protokolle von SAP nutzen:
Transaktion | Beschreibung | Anmerkungen |
---|---|---|
ST22 | Laufzeitfehler | |
SM21 | Systemlog | |
SLG1 | Anwendungslog | Für Floorplan Manager filtern nach:
Objekt = Unterobjekt = |
ST11 | Fehlerprotokolldatei |
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