Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline Bjoern77  
#1 Geschrieben : Mittwoch, 6. März 2019 10:52:07(UTC)
Bjoern77

Beiträge: 21
Germany
Wohnort: Pinneberg
Hallo Danke für den tipp,

mein Programm läuft wohl nicht richtig. Ich bekomme am ende eine Warnmeldung.
Es soll eine automatische Absage erteilt werden, wenn in der Vl03N eine Postion nicht geliefert wurde oder auch bei einer Teillieferung. Dazu hole ich mir aus der VBUP den Status A für die Postion und B für Teillieferungen.
Wenn ich mir den Debugger ansehe, dann holt sich das Programm die Daten aus den Tabellen, aber Sie werden im Bereich "Start der Verarbeitung" nicht bearbeitet, jedesmal heißt es, das das Field-Symbol noch nicht zugewiesen ist.

Tabellen: VBEP = https://ibb.co/2NmsJSN
VBUP = https://ibb.co/GxTRQ2Y
Fehler = https://ibb.co/tcyxwGh

Warum werden die Field-Symbole nicht zugewiesen?
Warum bekomme ich die Warnmeldung?


Code:
REPORT zpostion_absagen.

CONSTANTS gc_erfolg TYPE text40 VALUE 'geändert'.

TYPES: BEGIN OF gs_vbep,
         vbeln  TYPE vbep-vbeln,
         posnr  TYPE vbep-posnr,
       END OF gs_vbep.

TYPES: BEGIN OF gs_vbup,
         vbeln  TYPE vbup-vbeln,
         posnr  TYPE vbup-posnr,
         lfsta  TYPE vbup-lfsta,
       END OF gs_vbup.

TYPES: BEGIN OF ls_absage,
         vbeln  TYPE vbep-vbeln,
         posnr  TYPE vbep-posnr,
         lfsta  TYPE vbup-lfsta,
         absage type gs_vbup,
       END OF ls_absage.
**********************************************************************
* Daten deklaration                                                  *
**********************************************************************
* Interne Tabellen
DATA:
  lt_absage         TYPE STANDARD TABLE OF ls_absage WITH EMPTY KEY,
  gt_vbep           TYPE STANDARD TABLE OF vbep,
  gt_vbup           TYPE STANDARD TABLE OF vbup,
  gt_return         TYPE STANDARD TABLE OF bapiret2,
  gt_order_item_in  TYPE STANDARD TABLE OF bapisditm,
  gt_order_item_inx TYPE STANDARD TABLE OF bapisditmx.
* Strukturen
DATA:
  gs_vbep             TYPE vbep,
  gs_vbup             TYPE vbup,
  gs_order_header_in  TYPE bapisdh1,
  gs_order_header_inx TYPE bapisdh1x,
  gs_order_item_in    TYPE bapisditm,
  gs_order_item_inx   TYPE bapisditmx.
* Variablen
DATA:
  gv_salesdocument    TYPE bapivbeln-vbeln,
  gv_simulation       TYPE bapiflag-bapiflag,
  gv_result           TYPE text40.

FIELD-SYMBOLS <return> TYPE bapiret2.
**********************************************************************
* Ende Daten deklaration                                             *
**********************************************************************
* Start of Selektion                                                 *
**********************************************************************
START-OF-SELECTION.

  CLEAR gt_vbup.
BREAK-POINT.
  SELECT vbeln posnr lfsta FROM vbup
          INTO CORRESPONDING FIELDS OF TABLE gt_vbup.
**********************************************************************
* Ende der Selecion                                                  *
**********************************************************************
* Start der Verarbeitung                                             *
**********************************************************************
  LOOP AT gt_vbep ASSIGNING FIELD-SYMBOL(<lf_vbep>).
    LOOP AT gt_vbup ASSIGNING FIELD-SYMBOL(<lf_vbup>) WHERE vbeln = <lf_vbep>-vbeln
                                                      AND   posnr = <lf_vbep>-posnr.
      ASSIGN lt_absage[ lfsta = <lf_vbup>-lfsta ] TO   FIELD-SYMBOL(<lf_absage>).
      IF sy-subrc <> 0.
        INSERT VALUE #( lfsta = <lf_vbup>-lfsta ) INTO TABLE lt_absage.
        ASSIGN lt_absage[ lfsta = <lf_vbup>-lfsta ] TO <lf_absage>.
      ENDIF.

      READ TABLE gt_vbup INTO gs_vbup
      WITH KEY vbeln = <lf_vbup>-vbeln
               posnr = <lf_vbup>-posnr
               lfsta = <lf_vbup>-lfsta.

      IF <lf_vbup>-lfsta = 'A' OR <lf_vbup>-lfsta = 'B'.
        APPEND gs_vbup TO gt_vbup.
      ENDIF.
    ENDLOOP.
  ENDLOOP.

  gv_result = 'nix gefunden'.
**********************************************************************
* Ende der Verarbeitung                                              *
**********************************************************************
* Funktionsbaustein 'BAPI_SALESORDER_CHANGE'                         *
**********************************************************************
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
      salesdocument    = gv_salesdocument
      order_header_in  = gs_order_header_in
      order_header_inx = gs_order_header_inx
      simulation       = gv_simulation
    TABLES
      return           = gt_return
      order_item_in    = gt_order_item_in
      order_item_inx   = gt_order_item_inx.
  gv_result        = gc_erfolg.
  LOOP AT gt_return ASSIGNING <return> WHERE type = 'E'.
    gv_result = <return>-message.
    EXIT.
    IF  gv_simulation = 'X'.
      CONCATENATE 'TEST: ' gv_result INTO gv_result SEPARATED BY space.
      WRITE: /, 'TEST: ', gv_salesdocument, 'wurde abgesagt'.
    ELSE.
      IF gv_result = gc_erfolg.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
        WRITE: /, gv_salesdocument, 'wurde abgesagt'.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.
    ENDIF.
  ENDLOOP.

  MESSAGE i208(00) WITH gv_result.

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Benutzer, die gerade dieses Thema lesen
Ähnliche Themen
Automatische Absage per Mail (Logistik : MM und seine Submodule (WM, IM, PO, LIS)
von jmen 19.09.2017 12:36:38(UTC)
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

- Impressum / Datenschutz -