Ü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.
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
Diese Lösung wird zur Zeit noch nicht angeboten.
Die Definition erfolgt im Parameter I_S_CONFIGURATION des Funktionsbausteins BAL_GLB_CONFIG_SET im Feld I_S_CONFIGURATION-DISPLAY-CALLBACK.
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.
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.
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.
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 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
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.