Floorplan Manager (ABAP)

Aus MattWiki

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

  1. GET_PARAMETER_LIST: Eigene Konfigurationsparameter verarbeiten ( z.B. read only )
  2. INITIALIZE: Wird nach GET_PARAMETER_LIST aufgerufen. Nutzung z.B. zum Laden von Anwendungsobjekten (von der DB) / Sperren setzen etc.

Feederklassen Programmablauf / Event-Loop

  1. FLUSH -> Daten von Oberfläche an Anwendung übertragen
  2. PROCESS_EVENT -> Besondere Ereignisse ( z.B. Knopfdruck ) verarbeiten
  3. 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 = FLOORPLAN_MANAGER

Unterobjekt = Runtime

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/2012/12/02/a-step-by-step-guide-to-create-a-simple-fpm-application-using-feeder-class-for-form-guibb/

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