Application-Log mit Kontext

Mit dem Application-Log lassen sich standardisiert Meldungen sammeln und ausgeben. Was viele nicht wissen: die Meldungen können um eigene Felder erweitert werden. Die Zusatzinformationen werden im KONTEXT gespeichert. Dieser Kontext muss definiert und natürlich separat gefüllt werden.

Im Demoprogramm SBAL_DEMO_02 kannst du nachvollziehen, wie die Programmierung erfolgen muss.

Kontext

Mit Kontext sind zusätzliche Felder gemeint, die zusätzlich zu jeder Meldung gesetzt werden können. Auf diese Weise lassen sich Meldungen besser gruppieren oder darstellen. Zudem können Meldungen an sich kürzer ausfallen. Häufig wird ein Protokoll für eine Vielzahl von gleichen Objekten erstellt (Materialnummern, Werke, Kunden, Belegnummer etc.) Anstelle der Meldung “Prüfung für Material &1 (Werk &2) und Charge &3 wurde erfolgreich beendet.” könnten die Felder Materialnummer, Werk und Charge in einem Kontext gespeichert werden. Die Meldung lautet dann nur noch “Chargenprüfung erfolgreich.”.

Als Kontext muss eine eigene Struktur verwendet werden. Im Demoprogramm wird die Struktur BAL_S_EX01 verwendet:

Verwendung der Felder: Meldung hinzufügen

Um eine Meldung dem Meldungsprotokoll hinzuzufügen, ruft man den Baustein  BAL_LOG_MSG_ADD auf:

In LS_MSG hat man die Meldungsnummer, Meldungs-ID und Meldungstyp sowie die vier Meldungsvariablen gespeichert. Möchte man den Kontext verwenden, dann muss auch das Feld LS_MSG-CONTEXT gefüllt werden:

So kann für jede Meldung ein eigenes Set an Feldern mitgegeben werden.

Verwendung der Felder: Anzeige

Die Kontext-Felder werden nicht automatisch angezeigt, sondern müssen im Feldkatalog definiert werden. Damit die zusätzlichen Felder im Protokoll auftauchen, musst du sie im Display Profile hinzufügen. Mit dem Funktionsbaustein BAL_DSP_PROFILE_SINGLE_LOG_GET kannst du ein Standard-Anzeigeprofil laden und den Feldkatalog entsprechend erweitern:

Verwendung der Felder: Baumanzeige

Ein Stärke des Application-Log ist die Darstellung der Meldung in einer Baumstruktur. Hierfür müssen die einzelnen Ebenen genau definiert werden. Das folgende Beispiel zeigt eine Aufteilung nach Fehlertyp und Kundennummer:

 

Das Coding dafür definiert den Feldkatalog und die Sortierung für die einzelnen Ebenen. LEV1_FCAT und LEV1_SORT definieren die Felder und die Sortierung für die oberste Ebene, LEV2* für die zweite und so weiter.

Auf diese Weise ist eine schöne und ansprechende Darstellung von Meldungen leicht möglich.

Folgende Felder des Anzeigeprofils haben Einfluss auf die Baumdarstellung:

Das Feld TREE_ONTOP definiert, ob der Baum oben (TREE_ONTOP = X) oder links angezeigt wird (TREE_ONTOP = space).

Mit TREE_SIZE kann die Größe des Tree-Containers definiert werden.

image_pdfimage_print

COMMENTS

  • abapkadabra

    Ich hatte mir die Kontextmöglichkeit vor längerer Zeit mal angesehen, aber das war in Vergessenheit geraten… jetzt hätte ich einige praktische Anwendungsmöglichkeiten. Danke für die Wissensauffrischung!

    Hast Du eigentlich auch praktische Beispiele für die CALLBACK-Funktionalität?

Leave a Comment