[ABAP] Verarbeitungsprotokoll zu Nachrichten lesen (NAST, CMFK, CMFP)

* https://www.berater-wiki.de/Access_Tabellenbeziehung_Fehlerprotokoll

DATA: lv_kappl TYPE nast-kappl.
DATA: lv_objky TYPE nast-objky.
DATA: lv_kschl TYPE nast-kschl.
DATA: lv_erdat TYPE nast-erdat.
DATA: lv_eruhr TYPE nast-eruhr.
DATA: lv_usnam TYPE nast-usnam.

SELECT-OPTIONS: so_kappl FOR lv_kappl.
SELECT-OPTIONS: so_objky FOR lv_objky.
SELECT-OPTIONS: so_kschl FOR lv_kschl.
SELECT-OPTIONS: so_erdat FOR lv_erdat.
SELECT-OPTIONS: so_eruhr FOR lv_eruhr.
SELECT-OPTIONS: so_usnam FOR lv_usnam.

INITIALIZATION.

* Applikation für Nachrichtenkonditionen ('EF' = Bestellungen)
  so_kappl[] = VALUE #( ( sign = 'I' option = 'EQ' low = 'EF' high = '' ) ).
* Nachrichtenart
  so_kschl[] = VALUE #( ( sign = 'I' option = 'EQ' low = 'NEU' high = '' ) ).

START-OF-SELECTION.

* NAST (Nachrichtenstatus)
* CMFK (Speicherstruktur für den Kopf des Fehlerprotokolls)
* CMFP (Speicherstruktur für die gesammelten Fehler)
  SELECT FROM nast AS na
         LEFT OUTER JOIN cmfk AS ck ON na~cmfpnr = ck~nr
         LEFT OUTER JOIN cmfp AS cp ON na~cmfpnr = cp~nr
         FIELDS na~kappl,
                na~objky,
                na~kschl,
                na~parnr,
                na~erdat,
                na~eruhr,
                na~nacha,
                na~vsztp,
                na~usnam,
                na~tcode,
                na~ldest,
                na~tdreceiver,
                na~tdcovtitle,
                na~tdarmod,
                na~objtype,
                na~cmfpnr,
                ck~aplid,
                ck~nr,
                ck~datum,
                ck~uzeit,
                ck~uname,
                ck~objid,
                cp~msgcnt,
                cp~arbgb,
                cp~msgty,
                cp~msgnr,
                cp~msgv1,
                cp~msgv2,
                cp~msgv3,
                cp~msgv4,
                cp~logsys
         WHERE na~kappl IN @so_kappl
           AND na~objky IN @so_objky
           AND na~kschl IN @so_kschl
           AND na~erdat IN @so_erdat
           AND na~eruhr IN @so_eruhr
           AND na~usnam IN @so_usnam
         INTO TABLE @DATA(it_nast).

  IF sy-subrc = 0.
    cl_demo_output=>write_data( it_nast ).
* HTML-Code vom Demo-Output holen
    DATA(lv_html) = cl_demo_output=>get( ).
* Daten im Inline-Browser im SAP-Fenster anzeigen
    cl_abap_browser=>show_html( EXPORTING
                                  title        = 'Verarbeitungsprotokoll Nachrichten'
                                  html_string  = lv_html
                                  container    = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.
  ENDIF.

[ABAP] Datenbeschaffung für Lieferscheindruck

PARAMETERS: p_kappl TYPE t681a-kappl DEFAULT 'V2'.
PARAMETERS: p_kschl TYPE t685-kschl.

START-OF-SELECTION.

  SELECT SINGLE *
    INTO @DATA(lv_nast)
    FROM nast
    WHERE kappl = @p_kappl
      AND kschl = @p_kschl
      AND spras = @sy-langu.

  IF sy-subrc = 0.

    DATA(lv_vbco3) = VALUE vbco3( spras = lv_nast-spras  " Message language
                                  vbeln = lv_nast-objky  " Vertriebsbelegnummer
                                  kunde = lv_nast-parnr  " Partnernummer (KUNNR, LIFNR, PERNR, PARNR) mit Konv.Routine
                                  parvw = lv_nast-parvw  " Partnerrolle
                                ).

    DATA: lv_vbdkl TYPE vbdkl.
    DATA: it_vbdpl TYPE STANDARD TABLE OF vbdpl WITH DEFAULT KEY.

* Datenbeschaffung für Lieferscheindruck
    CALL FUNCTION 'RV_DELIVERY_PRINT_VIEW'
      EXPORTING
        comwa = lv_vbco3
      IMPORTING
        kopf  = lv_vbdkl
      TABLES
        pos   = it_vbdpl.

    cl_demo_output=>write_data( lv_vbdkl ).
    cl_demo_output=>write_data( it_vbdpl ).

* HTML-Code vom Demo-Output holen
    DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
    cl_abap_browser=>show_html( EXPORTING
                                  title        = 'Daten'
                                  html_string  = lv_html
                                  container    = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.
  ENDIF.

[ABAP] Verarbeitungsstatus von Nachrichten aus der Tabelle NAST lesen

* Tabelle: T681A (Konditionen: Applikationen)
PARAMETERS: p_kappl TYPE t681a-kappl DEFAULT 'V2'.

* Tabelle: T685 (Konditionen: Arten)
PARAMETERS: p_kschl TYPE t685-kschl DEFAULT 'LAVA'.

DATA(lv_vstat) = VALUE nast-vstat( ).

* Domäne NA_VSTAT:
* 0 - nicht verarbeitet
* 1 - erfolgreich verarbeitet
* 2 - fehlerhaft verarbeitet
SELECT-OPTIONS: so_vstat FOR lv_vstat.

INITIALIZATION.

* Verarbeitungssstatus der Nachricht vorbelegen
  so_vstat[] = VALUE #( ( sign   = 'I'
                          option = 'EQ'
                          low    = '1'  " 1 - erfolgreich verarbeitet
                          high   = ''
                        ) ).

START-OF-SELECTION.

* Nachrichtenstatus lesen
  SELECT *
    INTO TABLE @DATA(it_nast)
    FROM nast
    WHERE kappl = @p_kappl
      AND kschl = @p_kschl
      AND vstat IN @so_vstat.

  cl_demo_output=>write_data( it_nast ).
  cl_demo_output=>display( ).

[SAP] Nachrichtensteuerung: Druckparameter zu Nachrichtenart pflegen

Transaktionen

NACE (WFMC: Einstieg in das Customizing)

  • Button „Nachrichtenarten“

NACT (WFMC: Konditionsarten pflegen)

  • Button „Lupe“

NACU (WFMC: Customizing Nachrichtenarten)
NACQ (WFMC: Pflegen Konditionstabellen)
NACR (WFMC: Pflegen Nachrichtenkond.sätze)

Tabellen

TNAPR(Verarbeitungsprogramme für Nachrichten)
NAST (Nachrichtenstatus)
NACH (Detaildaten für Nachrichten)

  • Konditionssätze für Nachrichten

CMFK (Speicherstruktur für den Kopf des Fehlerprotokolls)
CMFP (Speicherstruktur für die gesammelten Fehler)
T681 (Konditionen: Strukturen)
T681T (Konditionen: Schnellerfassung: Texte)
T685B (Konditionsarten: Zusatzdaten Nachrichtenversendung)
B025 (Nachrichtenfindung Einkauf: Belegart/Einkaufsorg./Lieferant)
B026 (Nachrichtenfindung Einkauf: Belegart)
B027 (Nachrichtenfindung Einkauf: Einkaufsorg./Lieferant für EDI)

Links

[SAP] Nachrichtenausgabe

Transaktionen

ME9A (Nachrichtenausgabe Anfragen)
ME9E (Nachrichtenausgabe Einteilungen)
ME9F (Nachrichtenausgabe Bestellung)

  • Nachrichtendaten
  • Applikation, Nachrichtenart, Verarbeitungsstatus korrekt eintragen

ME9K (Nachrichtenausgabe Kontrakte)
MR90 (Logistik-Rechnungsprüfung)
ML83 (Leistungserfassung)

Tabellen

NAST (Nachrichtenstatus)
TNAPR (Verarbeitungsprogramme für Nachrichten)
STXH (STXD SAPscript Text-Datei Header)
T681A (Konditionen: Applikationen)
T685 (Konditions-Schluessel)

Views

V_EKKONA (View zur Ausgabe von Einkaufsbelegen)

Links