'BAPI_SALESORDER_CHANGE'

Getting started ... Alles für einen gelungenen Start.
20 Beiträge • Seite 1 von 2 (current) Nächste
20 Beiträge Seite 1 von 2 (current) Nächste

'BAPI_SALESORDER_CHANGE'

Beitrag von Bjoern77 (ForumUser / 17 / 0 / 0 ) »
Moin moin ,

ich hoffe ihr hattet ein schönes Wochenende.
Ich stehe vor dem Problem einer vernünftigen Umsetzung..

Anforderung ich soll ein Programm schreiben: Wo bei Kundenaufträgen (VL03N) bei einer Postion die nicht ausgeliefert wurde eine Absage per FuBa ausgegeben wird. Dabei spielt das Einteilungsdatum eine große Rolle.

Ich habe mir die Tabellen VBAP und VBEP rausgesucht und schonmal was geschrieben.

https://ibb.co/txS9JMd VBAP
https://ibb.co/2NmsJSN

Fuba = 'BAPI_SALESORDER_CHANGE'

Code: Alles auswählen.

REPORT z_auftrag_absagen.

* Internal tables
DATA: gt_vbap           TYPE STANDARD TABLE OF vbap,
      gt_vbep           TYPE STANDARD TABLE OF vbep,
      gt_order_item_in  TYPE STANDARD TABLE OF bapisditm,
      gt_order_item_inx TYPE STANDARD TABLE OF bapisditmx,
      gt_return         TYPE STANDARD TABLE OF bapiret2_t.

* Structure
DATA: gs_order_item_in     TYPE bapisditm,
      gs_order_header_in   TYPE bapisdh1,
      gs_order_header_inx  TYPE bapisdh1x,
      gs_order_item_inx    TYPE bapisditmx.

* Variablen
DATA: gv_simulation TYPE bapiflag-bapiflag,
      gv_salesdocument TYPE bapivbeln-vbeln.

* Field-Symbol
FIELD-SYMBOLS <vb> TYPE vbap.
FIELD-SYMBOLS <return> TYPE .

SELECT posnr FROM vbap INTO gs_order_item_in-itm_number
     WHERE vbeln =  <vb>-vbeln
       AND pstyv = 'ZHAU'
       AND abgru = space.
  gs_order_item_in-reason_rej  = 'Z1'.
  gs_order_item_inx-updateflag = 'U'.
  gs_order_item_inx-itm_number = gs_order_item_in-itm_number.
  gs_order_item_inx-reason_rej  = 'X'.
  APPEND gs_order_item_in TO gt_order_item_in.
  APPEND gs_order_item_inx TO gt_order_item_inx.
ENDSELECT.

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.
ENDLOOP.
Gruß

Björn

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von wreichelt (Top Expert / 1048 / 30 / 192 ) »
Hallo,

mh welches Problem hast du ? Glaskugel

Gruß Wolfgang

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Du musst den Parameter RETURN noch abfragen.
Wenn alles ok, dann BAPI_TRANSACTION_COMMIT, ansonsten BAPI_TRANSACTION_ROLLBACK.
Ohne den Commit-Baustein werden die Änderungen nicht durchgeführt (Siehe Doku)!

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von Bjoern77 (ForumUser / 17 / 0 / 0 ) »
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: Alles auswählen.

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.

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Welche Feldsymbole werden denn nicht zugewiesen? Das müsste ja dann zu einem Dump führen. An welcher Stelle (Programmzeile) und bei welchem Feldsymbol tritt dieser Dump genau auf?

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von Bjoern77 (ForumUser / 17 / 0 / 0 ) »
Hallo DeathandPain,

Code: Alles auswählen.

 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..
Im Debugger sind diese Feldsymbole <lf_vbep>, <lf_vbup> und <lf_absage> werden nicht zugewiesen, es gibt keinen Dump, er geht darüber und weißt die Felder nicht zu. Dann wird das Programm mit der erwähnten Meldung beendet.

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Dann kann er in den von Dir abgebildeten LOOP ja gar nicht reinspringen. Deshalb bleiben die dort genutzten Feldsymbole nicht zugewiesenen.

Das aber bedeutet, dass die interne Tabelle gt_vbep leer sein muss, so dass es nichts zu loopen gibt.

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von Bjoern77 (ForumUser / 17 / 0 / 0 ) »
Hallo mal an die SD Profis,

ich versuche ein Programm zu schreiben aus der VL03N, was eine Automatische Absage erteilt, wenn eine Position nicht beliefert wurde oder bei einer Teillieferung.
Soweit ich nun in Erfahrung gebracht habe ist die zuständige Tabelle die VBAP, dort stehen die Aufträge drin mit Vertriebsbeleg und Positionsnummer. Ich habe mir überlegt das ich der einfach halber aus der Tabelle VBUP den Lieferstatus A Position nicht geliefert und B Teillieferung nehme.
Wie bekomme ich eine Verbindung zu diesen beiden Tabellen. Weil in der VBUP stehen die Lieferungen ich brauche aber die Aufträge.
Wie kommt man von VBAP zu VBUP und zurück kommt. Ich dachte an einen Tabellen Join auf die VBAP, VBEP und VBUP.

Mein Code sind so aus, aber das gewünschte Ergebnis wird nicht erzielt.

Code: Alles auswählen.

REPORT ZABSAGE.

CONSTANTS GC_ERFOLG TYPE TEXT40 VALUE 'geändert'.

TYPES: BEGIN OF TY_VB,
          VBELN TYPE VBUP-VBELN,
          POSNR TYPE VBUP-POSNR,
       END OF TY_VB.

**********************************************************************
* Daten deklaration Anfang
**********************************************************************
* Interne Tabellen
DATA:
      GT_VB               TYPE SORTED TABLE OF TY_VB WITH UNIQUE KEY VBELN POSNR,
      GT_RETURN           TYPE TABLE OF BAPIRET2,
      GT_ORDER_ITEM_IN    TYPE TABLE OF BAPISDITM,
      GT_ORDER_ITEM_INX   TYPE TABLE OF BAPISDITMX.
* Variablen
DATA:
      GV_SALESDOCUMENT  TYPE BAPIVBELN-VBELN,
      GV_RESULT         TYPE TEXT40,
      GV_DUMMY_VBELN    TYPE VBUP-VBELN.
* Field-Symbol
FIELD-SYMBOLS <VB> LIKE LINE OF GT_VB.
FIELD-SYMBOLS <RETURN> TYPE BAPIRET2.
**********************************************************************
* Daten deklaration Ende                                             *
**********************************************************************
* Start of Selection                                                 *
**********************************************************************
* SD_SALESDOCUMENT_CHANGE
SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_VBELN FOR GV_DUMMY_VBELN.
SELECTION-SCREEN SKIP.
PARAMETERS P_TEST AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B01.
BREAK-POINT.
START-OF-SELECTION.

  SELECT VBELN POSNR INTO TABLE GT_VB FROM VBUP
    WHERE VBELN IN S_VBELN
    AND LFSTA IN ('A','B').

  GV_RESULT = 'nix gefunden'.

  LOOP AT GT_VB ASSIGNING <VB>.
    AT NEW VBELN.
      GV_SALESDOCUMENT = <VB>-VBELN.
      CLEAR: GT_RETURN[], GT_ORDER_ITEM_IN[], GT_ORDER_ITEM_INX[].
    ENDAT.

    APPEND VALUE #( REASON_REJ = 'Z1' ) TO GT_ORDER_ITEM_IN.
    APPEND VALUE #(
*                   ITM_NUMBER = zu klären?!?
                    REASON_REJ = 'X' ) TO GT_ORDER_ITEM_INX.
  ENDLOOP.
**********************************************************************
*  Funktionsbaustein 'BAPI_SALESORDER_CHANGE'                        *
**********************************************************************
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        SALESDOCUMENT    = GV_SALESDOCUMENT
        ORDER_HEADER_INX = VALUE BAPISDH1X( UPDATEFLAG = 'U' )
        SIMULATION       = P_TEST
      TABLES
        RETURN           = GT_RETURN
        ORDER_ITEM_IN    = GT_ORDER_ITEM_IN
        ORDER_ITEM_INX   = GT_ORDER_ITEM_INX.
**********************************************************************
    ASSIGN GT_RETURN[ TYPE = 'E' ]-MESSAGE TO FIELD-SYMBOL(<ERRORMESSAGE>). " Meldung aus Zeile mit Fehler dem Feldsymbol zuordnen
    GV_RESULT = SWITCH #( SY-SUBRC WHEN 0 THEN <ERRORMESSAGE> " wenn solch Zeile gefunden, dann Fehlermeldung daraus nehmen
                                          ELSE GC_ERFOLG ).   " andernfalls hat alles geklappt
    IF P_TEST = 'X'.
      gv_result = `Test: ` && GV_RESULT.
      WRITE: / 'Test: ', GV_SALESDOCUMENT, 'wurde abgesagt'.
    ELSE.
      IF GV_RESULT = GC_ERFOLG.
**********************************************************************
* Funktionsbaustein 'BAPI_TRANSACTION_COMMIT'                        *
**********************************************************************
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
        WRITE: /, GV_SALESDOCUMENT, 'wurde abgesagt'.
      ELSE.
**********************************************************************
* Funktonsbaustein 'BAPI_TRANSACTION_ROLLBACK'                       *
**********************************************************************
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.
    ENDIF.

  MESSAGE i208(00) WITH gv_result.

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Evtl. steht der Vorgängerbeleg in LIPS-VBELV und LIPS-POSNV.
Ansonsten musst den Belegfluss bemühen:
https://www.tricktresor.de/blog/belegfluss/

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Evtl. steht der Vorgängerbeleg in LIPS-VBELV und LIPS-POSNV.
Da wird er stehen, aber da hat die Datenbank keinen Index drauf. Von der VBAP kommend ist das damit keine performante Option.

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ABAPlerv (ForumUser / 84 / 24 / 1 ) »
Hallo,

ich müsste in der VBEP Tabelle den Delivery Block für jede Position ändern.

Ich habe noch nie ein BAPI verwendet und wollte jetzt mal nachfragen, wie ich das machen soll.

1. Frage: Soll ich ein Report schreiben, der einmal ausgeführt wird und den BAPI BAPI_SALESORDER_CHANGE verwendet?
2. Frage: Ich kann zwar die VBELN in den BAPI eingeben, aber wo kann ich die Positionsnummer eingeben?
3. Frage: Und wie ändere ich zu einen gegeben VBELN und POSNR die Delivery Block, in welchen Paramter schreibe ich den gewünschten Wert rein?

Danke

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
ABAPlerv hat geschrieben:
12.04.2022 16:41
Hallo,

ich müsste in der VBEP Tabelle den Delivery Block für jede Position ändern.

Ich habe noch nie ein BAPI verwendet und wollte jetzt mal nachfragen, wie ich das machen soll.

1. Frage: Soll ich ein Report schreiben, der einmal ausgeführt wird und den BAPI BAPI_SALESORDER_CHANGE verwendet?
ja, das wäre sinnvoll.
ABAPlerv hat geschrieben:
12.04.2022 16:41
2. Frage: Ich kann zwar die VBELN in den BAPI eingeben, aber wo kann ich die Positionsnummer eingeben?
Positionsnummern gibst du im Parameter ORDER_ITEM_IN mit.
Einteilungen in SCHEDULE_LINES.

für beide Parametertabellen musst du in der jeweils zugehörigen X-Struktur/ Tabelle die Felder ankreuzen, die geändert werden sollen.

ORDER_ITEM_INX
SCHEDULE_LINESX

Zusätzlich musst du in den X-Strukturen das Feld UPDATEFLAG auf "U" für UPDATE setzen.

ABAPlerv hat geschrieben:
12.04.2022 16:41
3. Frage: Und wie ändere ich zu einen gegeben VBELN und POSNR die Delivery Block, in welchen Parameter schreibe ich den gewünschten Wert rein?
ORDER_ITEM_IN[1]-POSNR = 10
ORDER_ITEM_INX[1]-POSNR = 10
ORDER_ITEM_INX[1]-UPDATEFLAG = 'U'.

SCHEDULE_LINES[1]-POSNR = 10.
SCHEDULE_LINES[1]-ETENR = 1.
SCHEDULE_LINES[1]-REQ_DLV_BL = 'Z1'.

SCHEDULE_LINESX[1]-POSNR = 10.
SCHEDULE_LINESX[1]-ETENR = 1.
SCHEDULE_LINESX[1]-REQ_DLV_BL = 'X'.
SCHEDULE_LINESX[1]-UPDATEFLAG = 'U'.
Wichtig bei allen BAPIs: Funktionsbaustein BAPI_TRANSACTION_COMMIT aufrufen, wenn das Protokoll keine Fehler zeigt. ansonsten passiert nix!
Zuletzt geändert von ewx am 13.04.2022 09:33, insgesamt 1-mal geändert.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
ABAPlerv


Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ABAPlerv (ForumUser / 84 / 24 / 1 ) »
ewx hat geschrieben:
12.04.2022 18:11
ABAPlerv hat geschrieben:
12.04.2022 16:41
Hallo,

ich müsste in der VBEP Tabelle den Delivery Block für jede Position ändern.

Ich habe noch nie ein BAPI verwendet und wollte jetzt mal nachfragen, wie ich das machen soll.

1. Frage: Soll ich ein Report schreiben, der einmal ausgeführt wird und den BAPI BAPI_SALESORDER_CHANGE verwendet?
ja, das wäre sinnvoll.
ABAPlerv hat geschrieben:
12.04.2022 16:41
2. Frage: Ich kann zwar die VBELN in den BAPI eingeben, aber wo kann ich die Positionsnummer eingeben?
Positionsnummern gibst du im Parameter ORDER_ITEM_IN mit.
Einteilungen in SCHEDULE_LINES.

für beide Parametertabellen musst du in der jeweils zugehörigen X-Struktur/ Tabelle die Felder ankreuzen, die geändert werden sollen.

ORDER_ITEM_INX
SCHEDULE_LINESX

Zusätzlich musst du in den X-Strukturen das Feld UPDATEFLAG auf "U" für UPDATE setzen.

ABAPlerv hat geschrieben:
12.04.2022 16:41
3. Frage: Und wie ändere ich zu einen gegeben VBELN und POSNR die Delivery Block, in welchen Parameter schreibe ich den gewünschten Wert rein?
ORDER_ITEM_IN[1]-POSNR = 10
ORDER_ITEM_INX[1]-POSNR = 10
ORDER_ITEM_INX[1]-UPDATEFLAG = 'U'.

SCHEDULE_LINES[1]-POSNR = 10.
SCHEDULE_LINES[1]-ETENR = 1.
SCHEDULE_LINES[1]-REQ_DLV_BL = 'Z1'.

SCHEDULE_LINESX[1]-POSNR = 10.
SCHEDULE_LINESX[1]-ETENR = 1.
SCHEDULE_LINESX[1]-REQ_DLV_BL = 'X'.
Wichtig bei allen BAPIs: Funktionsbaustein BAPI_TRANSACTION_COMMIT aufrufen, wenn das Protokoll keine Fehler zeigt. ansonsten passiert nix!


danke!
Es gibt im BAPI noch den IMPORTPARAMTER ORDER_HEADER_INX. Die Struktur habe ich ORDER_HEADER_INX-UPDATEFLAG = 'X' gesetzt.

Ich habe den BAPI in SE37 direkt verwendet um zu testen, leider bekomme ich immer die Feldermeldung Field header_inx-updateflagX is not an input field
Nummer 347.
Was mache ich falsch?

Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von Wann (ForumUser / 60 / 3 / 15 ) »
ABAPlerv hat geschrieben:
12.04.2022 21:35


danke!
Es gibt im BAPI noch den IMPORTPARAMTER ORDER_HEADER_INX. Die Struktur habe ich ORDER_HEADER_INX-UPDATEFLAG = 'X' gesetzt.
Ich hätte vermutet, dass ORDER_HEADER_INX-UPDATEFLAG = 'U' für Update gesetzt werden muss.

Folgende Benutzer bedankten sich beim Autor Wann für den Beitrag:
ABAPlerv


Re: 'BAPI_SALESORDER_CHANGE'

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
ja, muss ein U sein.
Schreib dir ein kleines Programm.
Dann kannst du auch direkt den BAPI_TRANSACTION_COMMIT dranhängen, um die Änderungen auch auf die DB zu schreiben.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
ABAPlerv


Vergleichbare Themen

0
Antw.
4582
Views
BAPI SalesOrder CreateFromDat2 - ExtensionIn Parameter
von juvi123 » 15.07.2009 12:48 • Verfasst in Java & SAP®
0
Antw.
4050
Views
BAPI SalesOrder CreateFromDat2 - Konditionen gesperrt?
von juvi123 » 15.07.2009 12:41 • Verfasst in Java & SAP®
0
Antw.
4846
Views
1
Antw.
7620
Views
CLFMAS: Change Pointer - Combining one or more Change Pointers in Single IDOC
von ABAPLover » 21.08.2024 22:41 • Verfasst in ABAP® Core
2
Antw.
4031
Views

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.