In meiner Freizeit habe ich mal wieder eine Z-Klasse programmiert, die ein Monitoring zu Dumps, Business Application Log (BAL) Einträge und IDocs ermöglicht. Die Klasse erlaubt durch jeweilige Instanzmethoden die Monitoring-Ergebnisse via E-Mail zu senden, auf den Applikationsserver als .csv Datei abzulegen, direkt auf der GUI auszugeben oder die Ergebnisse als interne Tabelle zubekommen. Letzteres ist interessant, falls man in einer anderen Klasse oder Programm mit den Monitoring-Ergebnisse weiter arbeiten möchte.

Dumps bekommen

Die Dumps können mit dem Funktionsbaustein RS_ST22_GET_DUMPS ermittelt werden. Der Importparameter p_day erwartet ein konkretes Datum. Wird kein Datum geliefert, so nimmt der Funktionsbaustein das sy-datum. Da in der Regel das Monitoring via Job läuft und das täglich, war für mich das vollkommen okay. Sicher gibt es noch Möglichkeiten es nicht nur auf ein Tag zu begrenzen. Möglicherweise könnte diese Zeile in dem Funktionsbaustein interessant sein:

select * from snap into wa_snap where datum = p_day and seqno = '000'.

BAL Einträge bekommen

Mit Funktionsbaustein APPL_LOG_READ_DB können die Einträge des BALs bekommen werden. Der Funktionsbausein speichert Daten in einer Kopf- und Meldungstabelle ab.

In der Kopftabelle header_data sind Daten wie die externe Nummer (Externe Identifikation) drin. Wenn man diesen geschickt zusammensetzt, hilft es bereits beim Aufruf der SLG1 den gewünschten BAL Eintrag zu finden, ohne in jeden Eintrag reinzuspringen und sich genau die Nachrichten anzuschauen.

In der Meldungstabelle messages sind die Nachrichten abgespeichert. Allerdings in der Form wie sie in der Tabelle T100 liegen. Daher sind die Nachrichtenvariablen in dem Nachrichtentext zu ersetzen. Bei meiner Z-Klasse übernimmt das die private Instanzmethode GET_SLG1_ENTRIES.

IDoc Statussätze bekommen

Für diesen Fall habe ich kein Funktionsbaustein o.ä. gefunden und selektiere hier selber über die Tabelle edids. Sinnvolle Einschränkungen für mich sind die Felder logdat, logtim, status, statyp.