Dokumentation zur VorgehensweiseProtokollanzeige

 

Funktionsbaustein

Verwendung

BAL_DSP_LOG_DISPLAY

Im Hauptspeicher befindliche Meldungen anzeigen

Typen

Verwendung

BAL_S_PROF

Anzeigeprofil

BAL_S_LFIL

Filterkriterien für Protokollkopfdaten

BAL_S_MFIL

Filterkriterien für Meldungsdaten

BAL_T_CFIL

Filterkriterien für Kontextdaten

BAL_T_LOGH

Tabelle mit Protokollhandles

BAL_T_MSGH

Tabelle mit Meldungshandles

Vorgehensweise

Welche Informationen können grundsätzlich dargestellt werden ?

Die Menge der Meldungen im Hauptspeicher kann man sich als extrem breite Tabelle mit einer Vielzahl von Feldern vorstellen (im Speicher werden die Daten natürlich anders gehalten). Die möglichen Felder dieser Tabelle sind:

  • Meldungszeile (MSGTY, MSGID, MSGNO, MSGV1, EXCLS, etc.)

  • Meldungsattribute (PROBCLASS, DETLEVEL, etc.)

  • Felder aller aufgetretenen Meldungskontexte

  • Meldungstexte

    1. aufbereitete Meldungszeile

    2. Langtexte zu den Feldern ("Sehr Wichtig" für Problemklasse 1, etc.)

  • Daten des Protokollkopfes, zu dem diese Meldung gehört

    1. Protokollkopfdaten (EXTNUMBER, USER, DATUM, etc.)

    2. Felder aller aufgetretenen Protokollkopf-Kontexte

    3. Protokollkopftexte (also Langtexte zu den Feldern)

  • Vom Anwender über eine Callback-Routine hinzugefügte, externe Daten, z.B. der Kurztext zum Material

Die darstellbaren Felder sind in der Struktur BAL_S_SHOW aufgelistet. Diese Struktur enthält natürlich nicht die Felder aus den Kontexten sowie die externen Daten, da diese dem Application Log a priori nicht bekannt sein können.

Wie erfolgt die Aufbereitung ?

Diese (riesige) Datenmenge muß jetzt dem Benutzer in geeigneter Weise präsentiert werden. Durch die Vorgabe eines Profils kann die Aufbereitung der Daten gesteuert werden. Dieses Profil ist keine vom Endanwender definierbare Anzeigevariante sondern ein vom Aufrufer zu definierender komplexer Datentyp (Struktur BAL_S_PROF), der dem Ausgabebaustein BAL_DSP_LOG_DISPLAY übergeben wird.

Die Darstellung basiert auf einigen Grundannahmen:

  • Die Meldungen werden in einer listenartigen Form dargestellt. Diese Liste enthält eine Teilmenge der dargestellten Felder. Diese Teilmenge kann durch einen Feldkatalog, der Teil des Anzeigeprofils BAL_S_PROF ist, vorgegeben werden (analog zum ABAP List Viewer).

  • Zu jeder Meldung können Detailinformationen abgerufen werden:

    1. Langtext zur Meldung

    2. Erweiterter Langtext bzw. Callback-Routine

    3. Technische Informationen zu einer Meldung (Meldungstyp, Arbeitsgebiet, Meldungsnummer etc.)

  • Die Menge der Meldungen kann mit Mitteln des ABAP List Viewers ausgewertet (Suchen) bzw. eingeschränkt werden (Filtern). Zusätzlich befindet sich im Listenkopf noch die Möglichkeit, die Datenmenge sehr schnell bezüglich des Meldungstyps (A, E; W; I/S) einzuschränken. Ein Klick auf ein entsprechendes Icon blendet dann z.B. die I und S-Meldungen ein oder aus.

  • Da die Liste der Meldungen extrem lang und unübersichtlich sein kann, können Sie zur Navigation noch einen Hierarchiebaum hinzufügen. Dieser Baum dient quasi als Inhaltsverzeichnis für die Menge von Meldungen. Durch Anklicken eines Knotens oder eines Blattes bzw. eines zugehörigen Pushbuttons kann man die zu diesem Kapitel gehörenden Meldungen in der Liste zur Anzeige bringen. Die Struktur dieses Baumes ist ebenfalls über das Anzeigeprofil vorgebbar.

Funktionsbaustein BAL_DSP_LOG_DISPLAY

Die Standard-Anzeige von auf der Datenbank befindlichen Protokollen des Application Logs erfolgt über die Transaktion SLG1. Diese stellt die Protokolle in einer fest vorgegebenen Art und Weise dar.

Abhängig von der Anwendung muß eine Protokollausgabe aber oftmals anders aussehen und es ist auch notwendig, nicht abgespeicherte Protokolle darzustellen.

Als Voraussetzung nehmen wir an, daß sich im Hauptspeicher eine Menge von Protokollen mit zugehörigen Meldungen befinden, die entweder durch das aktuelle Sammeln von Meldungen oder durch Laden von Protokollen von der Datenbank (Funktionsbaustein BAL_DB_LOAD) vorhanden sind.

Die Daten können jetzt durch Aufruf des Funktionsbausteins BAL_DSP_LOG_DISPLAY zur Anzeige gebracht werden. Er ist eine Art Anzeigemotor, dem man mitteilt:

  • I_S_LOG_FILTER bis I_T_MSG_HANDLE Was dargestellt werden soll (über Filterkriterien BAL_TP_FILTERS)

  • I_S_DISPLAY_PROFILE Wie die Daten dargestellt werden sollen (über ein Anzeigeprofil BAL_S_PROF)

  • I_AMODAL Ob die Anzeige in einem neuen Modus gestartet werden soll.

Hinweis Hinweis

Bei einer Anzeige in einem neuen Modus geht die Programmkontrolle verloren. Es ist nicht mehr möglich, die Protokollanzeige aufzufrischen.

Ende des Hinweises

Beispiel Beispiel

Programm SBAL_DEMO_04 zeigt verschiedene Möglichkeiten, wie eine Protokollanzeige realisiert sein kann.

Ende des Beispiels.
Was soll dargestellt werden?

Die darzustellende Datenmenge läßt sich durch Vorgabe der Importing-Parameter festlegen:

  • Protokollbezogene Filterkriterien

    1. I_S_LOG_FILTER: Ranges für Protokollkopf-Felder

    2. I_S_LOG_CONTEXT_FILTER: Ranges für Kontext-Felder des Protokollkopfes

    3. I_T_LOG_HANDLE: Tabelle mit Protokollhandle

  • Meldungsbezogene Filterkriterien

    1. I_S_MSG_FILTER: Ranges für Meldungsfelder

    2. I_S_MSG_CONTEXT_FILTER: Ranger für Kontext-Felder der Meldung

    3. I_T_MSG_HANDLE: Tabelle mit Meldungshandles

Die Filter sind jene Datentypen, die auch beim Suchen von Meldungen und Protokollen verwendet werden. Reicht die Angabe von Filtern nicht aus, kann die Menge von darzustellenden Daten auch alternativ durch eine Menge von Protokoll- und Meldungshandles spezifiziert werden, die Sie selbst nach Kriterien zusammengestellt haben.

Werden mehrere Parameter angegeben, so werden sie einer logischen UND-Verknüpfung unterzogen. Es werden also nur solche Meldungen angezeigt, die allen Bedingungen gleichzeitig genügen. Werden keine dieser Parameter angegeben, dann werden allen im Hauptspeicher befindlichen Meldungen angezeigt.

Wie sollen die Daten dargestellt werden?

Das Anzeigeprofil (Struktur BAL_S_PROF) gibt vor, wie die Protokollanzeige aussehen soll. Es besteht vornehmlich aus Feldkatalogen, die beschreiben, welche Felder in der Liste und in den verschiedenen Kapitelebenen des Navigationsbaumes auftauchen sollen.

Das Application Log bietet vordefinierte Anzeigeprofile an, die über Funktionsbausteine (beginnend mit BAL_DSP_PROFILE_...) geholt werden können. Es ist aber auch möglich, sich ein Anzeigeprofil nach eigenen Vorstellungen zusammenzubauen. Wird kein Anzeigeprofil vorgegeben, so wird das Standard-Anzeigeprofil der Transaktion SLG1 gewählt.

Im folgenden die wichtigsten Felder des Anzeigeprofils (bis auf MESS_FCAT sind alle Felder optional):

Allgemeine Parameter

Feld

Verwendung

TITEL

Titel des Dynpros

MESS_FCAT

Feldkatalog für die Meldungsliste. Dieser Feldkatalog enthält neben Tabellenname und Feldname (REF_TABLE, REF_FIELD) z.B. die Angabe, in welcher Spalte das Feld erscheinen soll (COL_POS) und mit welcher Länge (OUTPUTLEN).

MESS_SORT

Tabelle mit Sortierreihenfolge der Meldungen. Enthält Tabellen- und Feldname, Reihenfolgenummer und Kennzeichen für Sortierung aufwärts oder abwärts. Hier erwähnte Felder müssen natürlich zuvor in MESS_FCAT erwähnt worden sein.

Parameter für den Navigationsbaum

Feld

Verwendung

LEV1_FCAT, ..., LEV9_FCAT

Neben (oder oberhalb) der Meldungsliste können Sie einen Navigationsbaum erzeugen. Dieser Baum schlüsselt die Meldungsmenge nach bestimmten Kriterien auf (z.B. Beleg-und Positionsnummer). Zu diesem Zweck müssen Sie die Aufschlüsselungskriterien in Feldkatalogen für die Ebenen 1 bis maximal 9 des Navigationsbaums angeben (z.B. Belegnummer für Ebene 1 und Positionsnummer für Ebene 2). Auf einer Ebene können auch mehrere Felder zu einem Aufschlüsselungskriterium zusammengefaßt werden (z.B. Versandstelle/Ladestelle auf Ebene 1), daher ist für jede Ebene ein Feldkatalog und nicht nur die Angabe eines einzelnen Feldes möglich. Der Feldkatalog ist genauso wie MESS_FCAT aufgebaut.

LEV1_SORT, ..., LEV9_SORT

Tabelle mit Sortierreihenfolge der Kapitelebenen.

Rücksprungroutinen

Zu bestimmten Zeitpunkten der Protokollanzeige können Rücksprungroutinen genutzt werden (FORM-Routinen oder Funktionsbausteine). Mögliche Zeitpunkte sind:

Feld

Verwendung

CLBK_READ

Nachlesen externer Daten für die Anzeige (z.B. Materialkurztext)

CLBK_UCOM

Nachlesen externer Daten für die Anzeige (z.B. Materialkurztext)

CLBK_UCOM

Ausführung eigener User-Commands

CLBK_UCBF

Wird vor Ausführung eines User-Commands aufgerufen

CLBK_UCAF

Wird nach Ausführung eines User-Commands aufgerufen

CLBK_PBO

PBO der Anzeige (z.B. um einen eigenen Status zu setzen)

Eigene Pushbuttons

Feld

Verwendung

EXT_PUSH1, ..., EXT_PUSH4

Mit diesen Komponenten können eigene Drucktasten ins Menü gebracht werden, ohne das ein eigener GUI-Status definiert werden muß. Zu PAI wird beim Auswählen der User-Command "%EXT_PUSH1", ... "%EXT_PUSH4" ausgelöst, auf die Sie dann in der entsprechenden Callback-Routine (siehe CLBK_UCOM) reagieren können.