Application Log und Fehlerverarbeitung NAST

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Fehlerbehandlung.

Das Application Log ist eine Standardlösung von SAP, um sehr komfortable Möglichkeit Meldungen (Fehler, Erfolgsmeldungen etc.) lokal (temporär) oder persistent (in der Datenbank) zu speichern und darzustellen.

Um übermäßig große Tabellengrößen zu verhindern, sollten Application Logs auf der Datenbank in regelmäßigen Abständen gelöscht werden, z. B. im Monatsrhythmus. Bei der Anlage von persistenten Application Logs kann auch ein Ablaufdatum mitgegeben werden. Wenn es notwendig ist Meldungen über langen Zeitraum zu speichern, sollten eher Änderungsbelege genutzt werden, siehe SAP-Hilfe.

Die Fehlerverarbeitung bei der Nachrichtenausgabe ist mit dem Application Log verwandt und ist auch eine SAP-Standardfehlerverarbeitung, aber funktioniert über die Tabellen CMFK und CMFP und die Verknüpfung zum Feld NAST-CMFPNR.

Siehe Programm RSNAST00 Nachrichtenversand.

Error-Message und ROLLBACK WORK

  • Unabhängig davon, ob das Application Log oder die Fehlerverarbeitung in der NAST verwendet wird, darf man im Druckprogramm oder sonstigen Programmen keine Error-Message auslösen. Eine Error-Message führt immer einen impliziten ROLLBACK WORK durch und dann werden sowohl Protokolle im Application Log verhindert als auch eine Speicherung des NAST-Datensatzes.
  • Eine Error-Message im Druckprogramm sollte daher nicht ausgegeben werden und die Meldung muss wie in den folgenden Abschnitten beschreiben verarbeitet werden.

Fehlerverarbeitung im Druckprogramm (Tabellen NAST, CMFK, CMFP)

Access Tabellenbeziehung Fehlerprotokoll

Call Function NAST_PROTOCOL_UPDATE

  • In den Druckprogrammen von SAP für den Kundenauftrag, Lieferschein, Rechnung etc. ist die Nutzung eines Fehlerprotokolls verwandt zum Application Log bereits vorgesehen ist. Ein Eintrag ins NAST-Protokoll kann durchgeführt werden durch lediglich einen oder mehrere Funktionsbausteinaufrufe NAST_PROTOCOL_UPDATE.
  • Das Fehlerprotokoll wird jedoch nicht fortgeschrieben, wenn der Beleg lediglich in der Druckvorschau ausgegeben wird, auch wenn der Aufruf vom Funktionsbaustein NAST_PROTOCOL_UPDATE erfolgt sein sollte. Daher sollte man in solchen Fällen entsprechende Messages auf dem Bildschirm ausgeben, um über mögliche Fehlersituationen zu informieren. Die Messageboxen dürfen jedoch nur bei der Druckvorschau ausgegeben werden, da Druckprogramme oft auch im Hintergrund durchlaufen werden, bzw. beim Sichern der Anwendung (Kundenauftrag, Lieferung, Rechnung etc.). Wird dann eine Message ausgeführt, generiert das System eine Expressmail mit dem Fehlertext. Das ist meist nicht gewünscht.
 CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
    EXPORTING
      msg_arbgb = iv_sy_msgid.  „Nachrichtenklasse
      msg_nr    = iv_sy_msgno.  „Messagenummer
      msg_ty    = iv_sy_msgty.  „Messagetyp (I = Info, W = Warnung, E = Error, A = Abbruch)
      msg_v1    = iv_sy_msgv1   „Platzhaltervariable1
      msg_v2    = iv_sy_msgv2   „Platzhaltervariable2
      msg_v3    = iv_sy_msgv3   „Platzhaltervariable3
      msg_v4    = iv_sy_msgv4.  „Platzhaltervariable4
    EXCEPTIONS
      OTHERS    = 1.

Kapselung NAST_PROTOCOL_UPDATE in einer globalen Methode

  • Der Funktionsbausteinaufruf NAST_PROTOCOL_UPDATE sollte in einer globalen Methode gekapselt werden, um eine einheitliche Verwendung dieses Updates sicher zu erstellen. Eine Info-Message kann immer ausgegeben werden, wenn der Druckbeleg lediglich in der Druckvorschau/Bildschirmansicht ausgegeben wird. Dafür wird der globalen Methode ein Importparameter IV_SCREEN hinzugefügt. Ist ein ‚X’ in in diesem Importparameter wird eine Info-Message auf den Bildschirm ausgegeben.
  • Es werden also nur Infomessages ausgegeben, wenn die Druckvorschau aktiv ist. Erfolgt die Nachrichtenverarbeitung ohne Druckvorschau, wird der NAST-Satz genauso wie das Fehlerprotokoll fortgeschrieben und das Ergebnis der Verarbeitung kann im NAST-Protokoll analysiert werden.
  • Die Parameter mit Systemfeldern sollte man mit Wertübergabe (per value) setzen, damit nicht bei einer Neusetzung der Systemfelder in der Methode die übergebenen Parameter-Systemfelder überschrieben werden.

ApplLog1c.JPG

Anzeige NAST-Protokoll im Beleg Lieferung

Gibt man jetzt wie hier z. B. in der Lieferung bei der Nachrichtenart ZLDR das Protokoll zur Nachricht aus mit dem Button ApplLog3.JPG.

ApplLog2.JPG


Dann sieht man das aussagekräftige Protokoll, dass ein bestimmter (Smart Forms-)Textbaustein (für die NAST-Sprache) nicht existiert , bzw. nicht übersetzt wurde.

ApplLog4.JPG

Application Log

Web-Links

Literatur