Dokumentation zur VorgehensweiseÜbersicht über die Callback-Routinen

 

Im Application Log können Sie zu verschiedenen Zeitpunkten durch Callback-Routinen gezielt in den Programmablauf eingreifen.

Diese Callback-Routinen können entweder FORM-Routinen oder Funktionsbausteine sein.

Als Beispiel (und Vorlage für die Parametrisierung) dient das Programm SBAL_CALLBACK.

Vorgehensweise

BAL_CALLBACK_DISPLAY

Hier kann festgelegt werden, wie sich eine Meldung zum Entstehungszeitpunkt darstellen soll. Denkbar wäre zum Beispiel, daß alle Meldungen (oder auch nur ein Teil) in ein amodales Fenster fließen, so daß man permanent über den Fortgang des Programms informiert wird.

Achtung Achtung

Diese Lösung wird zur Zeit noch nicht angeboten.

Ende der Warnung.

Die Definition erfolgt im Parameter I_S_CONFIGURATION des Funktionsbausteins BAL_GLB_CONFIG_SET im Feld I_S_CONFIGURATION-DISPLAY-CALLBACK.

BAL_CALLBACK_DETAIL_LOG

In dieser Callback-Routine kann zu einem Protokollkopf eine eigene Detailinformation dargestellt werden. Sie wird aufgerufen, wenn in der Protokollanzeige der Cursor auf eine Protokollkopfzeile gesetzt wurde und die Drucktaste Detail ausgewählt wurde.

Die Callback-Routine wird je Protokollkopf gesetzt; zum Zeitpunkt des Erzeugens eines Protokolls mit BAL_LOG_CREATE. Hier müssen Sie in der Übergabe-Struktur I_S_LOG (Struktur BAL_S_LOG) das Feld I_S_LOG-PARAMS-CALLBACK setzten.

BAL_CALLBACK_DETAIL_MSG

In dieser Callback-Routine kann zu einer Meldung eine eigene Detailinformation dargestellt werden. Sie wird aufgerufen, wenn in der Protokollanzeige der Cursor auf eine Meldungszeile gesetzt wurde und die Drucktaste Detail ausgewählt wurde. Als Abkürzung kann auch direkt das Detail-Icon neben der Meldung ausgewählt werden.

Die Callback-Routine wird je Meldung gesetzt; zum Zeitpunkt des Absetzens einer Meldung, z.B. mit BAL_LOG_MSG_ADD. Hier müssen Sie im Importing-Parameter I_S_MSG (Strukur BAL_S_MSG) das Feld I_S_MSG-PARAMS-CALLBACK setzten.

BAL_CALLBACK_READ

In dieser Callback-Routine können für die Protokollanzeige Daten nachgelesen werden, z.B. der Materialkurztext. Die Routine wird je Meldung und je Feld aufgerufen, die im Feldkatalog als extern definiert wurden. Um Performance-Probleme zu vermeiden, sollten Daten unbedingt gepuffert nachgelesen werden. Leider ist es nicht möglich, einen Prefetch durchzuführen bzw. die Tabelle der nachzulesenden Daten auf einmal zu bearbeiten, da diese Daten dynamisch aufgebaut werden.

In der Protokollanzeige (z.B. aufgerufen mit BAL_DSP_LOG_DISPLAY) wird das Anzeige-Profil I_S_DISPLAY_PROFILE mitgegeben (Struktur BAL_S_PROF). Die Callback-Routine wird im Feld I_S_DISPLAY_PROFILE-CLBK_READ definiert. Sie wird für alle Felder aufgerufen, die in den Feldkatalogen LEV1_FCAT, ..., LEV9_FCAT bzw. MESS_FCAT das Attribut IS_EXTERN = 'X' haben.

BAL_CALLBACK_PBO

In dieser Callback-Routine kann ein eigenes Menü für die Protokollanzeige gesetzt werden. Auf diese Weise können weitere applikationsspezifische Elemente in die Protokollanzeige integriert werden. Sie wird zu PBO der Protokollanzeige aufgerufen.

Die Definition erfolgt im Anzeigeprofil, Feld CLBK_PBO.

BAL_CALLBACK_UCOMM, ...BEFORE_UCOMM, ..._AFTER_UCOMM

BAL_CALLBACK_UCOMM wird aufgerufen, wenn zu PAI ein nicht zum Application Log gehörendes Kommando ausgelöst wird. BAL_CALLBACK_BEFORE_UCOMM wird für obige Kommandos und zusätzlich für einige Standard-Kommandos angesprungen, und zwar vor Ausführen des Kommandos. BAL_CALLBACK_AFTER_UCOMM ebenfalls, aber nach der Ausführung.

Die Definitionen erfolgen bei

  • BAL_CALLBACK_UCOMM im Anzeigeprofil, Feld CLBK_UCOM

  • BAL_CALLBACK_BEFORE_UCOMM im Anzeigeprofil, Feld CLBK_UCBF

  • BAL_CALLBACK_AFTER_UCOMM im Anzeigeprofil, Feld CLBK_UCAF

BAL_CALLBACK_TOOLBAR

Wird zur Anzeige von Protokollen das ALV Grid Control genutzt (Parameter USE_GRID = 'X' im Anzeigeprofil), dann kann in dieser Routine die Toolbar oberhalb des ALV Grids modifiziert werden. Auf diese Weise können weitere applikationsspezifische Elemente in die Protokollanzeige integriert werden.

Diese Routine wird aufgerufen, wenn

  • die Toolbar erzeugt wird.

  • auf der Toolbar ein Button gedrückt wird.

Die Definition erfolgt im Anzeigeprofil, Feld CLBK_TOOLB.