ZCL BAL

Aus SAP Wiki ツ

Diese in Freizeit erstellte Z-Klasse basiert auf das Interface "IF_RECA_MESSAGE_LIST bzw. der Klasse "CF_RECA_MESSAGE_LIST". Die Z-Klasse ermöglicht ein leichteres Handling zur Erstellung eines BAL bzw. Methoden darauf auszuführen.

Aktuelle Version ist 220426

Konstruktor

BAL-Objekt erzeugen

Das BAL-Objekt wird mit Methode "cf_reca_message_list=>create" anhand des übergebenden SLG0 Objekt/Subobjekt erzeugt und in die private globale Variable "_go_bal" der Z-Klasse "ZCL_BAL" geschrieben.

EXT-ID und Verfallsdatum

Beim Aufruf des Konstruktors wird nach Erzeugung des BAL-Objektes direkt eine externe Identfikation des BALs bestimmt und optional ein Verfallsdatum. Wenn kein Verfallsdatum mitgegeben wird, setzt die Methode "IF_RECA_MESSAGE_LIST~SET_EXPIRATION_DATE" das Verfallsdatum auf sy-datum + 30 und das Protokoll darf vor diesem Termin nicht gelöscht werden.

Methoden zur Abspeicherung von Nachrichten verschiedener Datentypen

ADD_MSG_WITH_SINGLE_FIELDS

Hier kann eine Nachricht anhand einzelner Felder vom Nachrichtentyp bis 4. Nachrichtenvariable dem BAL angehangen werden.

ADD_MSG_WITH_RECAMSG

Anhängen einer Nachricht als Struktur oder interne Tabelle vom Datentyp "RECAMSG".

ADD_MSG_WITH_BAPIRET2

Anhängen einer Nachricht als Struktur oder interne Tabelle vom Datentyp "BAPIRET2".

ADD_MSG_WITH_BALMSG

Anhängen einer Nachricht als Struktur oder interne Tabelle vom Datentyp "BAL_S_MSG".

ADD_MSG_WITH_SYMSG

Anhängen einer Nachricht aus Nachrichtenfeldern von SY

ADD_MSG_WITH_EXCEPTION

Anhängen einer Nachricht mit Hilfe eines Ausnahmeobjektes (CX_ROOT).

Nachrichten bekommen

GET_ALL_MSGS_BAPIRET2

Liefert alle Nachrichten, die dem BAL bereits angehangen worden sind, im Datentyp von BAPIRET2.

GET_MSGS_FROM_MSGTY_RECAMSG

Liefert alle Nachrichten, die einen bestimmten Nachrichtentyp haben, im Datentyp von RECAMSG.

GET_STATISTICS

Liefert eine Struktur mit Statistiken zurück z.B. "Gesamtanzahl der Meldungen", "Anzahl der E-Meldungen" oder "Problemklasse einer Meldung".

GET_PROTOCOL_NO

Liefert die Protokollnummer eines erstellten Protokolls.

Lösch- und Überprüfungsmethoden

DELETE_ALL_COLLECTED_MSGS

Löscht alle zu dem Zeitpunkt gesammelten Nachrichten aus dem BAL-Speicher.

IS_EMPTY

Prüft, ob der BAL keine Nachrichten hat.

BAL speichern und anzeigen

STORE_AND_FREE

Ermöglicht den BAL zu persistieren, sodass dieser unter SLG1 aufgerufen werden kann. Wenn dies erfolgreich war, werden verwendete Ressourcen freigegeben. Zu empfehlen, wenn eine Anzeige des Protokolls nicht notwendig ist.

STORE_DISPLAY_FREE

Ermöglicht den BAL zu persistieren, sodass dieser unter SLG1 aufgerufen werden kann. Direkt danach wird der gespeicherte BAL als Protokoll ausgegeben. Hier ist es möglich in Vollbild oder Pop-Up. Wenn die Anzeige verlassen wird, werden die Ressourcen freigegeben.

Hinweis: Wenn die Absicht besteht den BAL unbedingt abzuspeichern, sollte man diese Methode nutzen anstatt die einzelnen Methoden "STORE_AND_FREE" und "DISPLAY". Wenn die "DISPLAY" Methode vor "STORE_AND_FREE" ausgeführt wird, kann es in ungünstigen Fällen dazu führen, dass eine Speicherung garnicht mehr erfolgt.

DISPLAY

Eignet sich gut, um ein Protokoll nur anzuzeigen und garnicht den BAL im Prinzip abzuspeichern.

Statische Methoden

ADD_SY_MSG_TO_ITAB

Fügt SY-MSG zu einer BAL_MSG interne Tabelle hinzu

ADD_EXC_MSG_TO_ITAB

Fügt Nachricht von Exception interne Tabelle hinzu

FIND_BAL_PROTOCOL_BY_EXTNO

Lädt ein bereits gespeichertes Protokoll (über ext. Nummer)

FIND_BAL_PROTOCOL_BY_HANDLE

Lädt ein bereits gespeichertes Protokoll (über Handle)

FIND_BAL_LAST_STORED

Liefert Instanz mit zuletzt gespeichertem Protokoll