Fehlerverarbeitung Druckprogramm (NAST)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Eine NAST-Nachricht/Formularausgabe wird häufig erfolgreich verarbeitet, aber manchmal nicht. Auch der Fehlerfall muss korrekt und möglichst präzise protokolliert werden.

Grundlagen Fehlerverarbeitung und Protokollierung

  • Aufgrund diverser Ursachen kann es dazu kommen, dass das Formular nicht ausgegeben werden kann. Die Ursache kann im Druckprogramm liegen oder auch im Formular.
  • In diesem Fall wäre es schlecht, wenn die Nachricht als erfolgreich verarbeitet angezeigt würde, dies aber nicht der Fall ist. Der Fachbereich würde z. B. von einer erfolgreich verarbeiteten ausgegeben Bestellung ausgehen und möglicherweise erst viel später aufgrund der nicht eingetroffenen Bestellbestätigung des Lieferanten oder schlimmstenfalls bei der nicht eingetroffenen Warenversendung bemerken, dass die Bestellung nicht versandt wurde oder selbst dann nicht sicher wissen, ob der Fehler im eigenen System liegt oder beim Lieferanten.
  • Daher ist es sehr wichtig, dass mindestens der Verarbeitungsstatus (Feld NAST-VSTAT) korrekt fortgeschrieben wird: Erfolgreiche Verarbeitung (Status = 1; Grüne Ampel) oder Fehler bei der Verarbeitung (Status = 2; Rote Ampel).
  • Noch besser ist es, wenn bei der nicht erfolgreich verarbeiteten Nachricht im Protokoll ein eindeutiger Hinweis auf die Fehlerursache vorliegt. Das hilft dem Fachbereich und den Entwicklern die Fehlerursache zu finden und zu beheben.

Ampelstatus NAST-VSTAT wird gesetzt

  • Der Verarbeitungsstatus der Nachricht (Feld NAST-VSTAT) wird in der aufgerufenen Form-Routine durch einen Parameter ENT_RETCO gesetzt. Ist dieser Parameter 0, dann wird die Nachricht auf erfolgreich verarbeitet (grüne Ampel) gespeichert.
  • Ist der Parameter z. B auf 1 oder 4, dann wird die Nachricht nicht erfolgreich (rote Ampel)
FORM entry_neu USING ent_retco  LIKE sy-subrc
                    ent_screen TYPE c.

 PERFORM adobe_print_output USING    xdruvo
                                     ent_screen."xdruvo
                         CHANGING    ent_retco
"ent_retco = 0 -> Ampel wird auf erfolgreich verarbeitet gesetzt (grüne Ampel)
"ent_retco = 4 -> Ampel wird auf nicht erfolgreich verarbeitet gesetzt (rote Ampel)
ENDFORM.                    " adobe_entry_neu

Protokolleintrag schreiben mit NAST_PROTOCOL_UPDATE

  • Wie oben beschrieben hilft eine Fehlerbeschreibung im Protokoll den Fehler zu finden und zu beheben.
  • Die Einträge in das Fehlerprotokoll werden durch den Funktionsbaustein NAST_PROTOCOL_UPDATE vorgenommen. Hier werden Meldungstexte gefüllt.
 CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
   EXPORTING
     msg_arbgb =  ... „Nachrichtenklasse
     msg_nr    = ... „Nachrichtennummer
     msg_ty    = ... „Fehlertyp
     msg_v1    = ... „1. Variabler Text
     msg_v2    = ... „2. Variabler Text
   EXCEPTIONS
     OTHERS    = 0.

Fehlerprotokoll außerhalb des Druckprogramms fortschreiben

  • Wird der NAST-Eintrag außerhalb des Druckprogramms fortgeschrieben, muss man dem Programm erst einmal den NAST-Eintrag bekannt machen, da der Funktionsbaustein NAST_PROTOKOL_UPDATE keinen Importparameter für den NAST-Eintrag besitzt.
  • Das Bekanntmachen des NAST-Eintrags kann durch den Funktionsbaustein NAST_PROTOCOL_INIT_ AND_LOAD erfolgen.
  • Im Druckprogramm verbleibt dann noch den Ampelstatus zu setzen (Parameter ENT_RETCO).
 DATA: lv_msg_v2 TYPE sy-msgv2.

 lv_msg_v2 = ls_ekpo-matnr.

 CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
   EXPORTING
     cps_nast = gs_nast.

 CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
   EXPORTING
     msg_arbgb = '0U'
     msg_nr    = 532
     msg_ty    = 'E'
     msg_v1    = 'Der Artikel ist nicht zulässig:'
     msg_v2    = lv_msg_v2
   EXCEPTIONS
     OTHERS    = 0.

 MESSAGE e532(0u) WITH 'Der Artikel ist nicht zulässig:'
                        ls_ekpo-matnr
                        RAISING no_matnr.

Funktionsgruppe WMCP

  • Viele relevante Funktionsbausteine für die Protokollierung der NAST-Einträge finden sich in der Funktionsgruppe WMCP.

WMCP1.JPG

Web-Links