BAPI_PO_CHANGE neue Position

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

BAPI_PO_CHANGE neue Position

Beitrag von dkast (Specialist / 117 / 7 / 1 ) »
Hallo zusammen,

ich möchte mit dem BAPI_PO_CHANGE eine neue Position in einer Bestellung anfügen. (Vorausgessetzt, das ist der richtige Weg)
Im Prinzip mache ich nicht mehr, als das ich mir die letze Position in der Bestellung kopiere (Mengen, Werk, Texte usw,) und dann die Positionsnummer erhöhe.
Der BAPI spuckt allerding immer aus, das keine Daten geändert wurden. Einen Grund teilt er mir nicht mit.
(BAPI_TRANSACTION_COMMIT wird abgesetzt)

Hat jemand eine Idee oder bin ich mit dem BAPI völlig auf dem Holzweg?

Vielen Dank schon mal im vorraus.

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


Re: BAPI_PO_CHANGE neue Position

Beitrag von black_adept (Top Expert / 4157 / 136 / 959 ) »
Wahrscheinlich füllst du den wichtigen Übergabeparameter falsch.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: BAPI_PO_CHANGE neue Position

Beitrag von qyurryus (Specialist / 115 / 88 / 46 ) »
Coding würde weiterhelfen!

Kristallkugel-Methode:
- der Funktionsbaustein hat eine (für SAP-Verhältnisse) detaillierte Dokumentation, ansonsten diese sich einmal anschauen. Dort wird auch für FAQs auf die SAP-Hinweise 197958 und 499626 verwiesen.
- Wahrscheinlich erweiterst du POITEM um eine Zeile - dabei beachten dass Änderungen auch in den analogen Tabellen mit "X"-Suffix markiert werden müssen (in diesem Fall POITEMX).

Re: BAPI_PO_CHANGE neue Position

Beitrag von dkast (Specialist / 117 / 7 / 1 ) »
qyurryus hat geschrieben:Coding würde weiterhelfen!

Kristallkugel-Methode:
- der Funktionsbaustein hat eine (für SAP-Verhältnisse) detaillierte Dokumentation, ansonsten diese sich einmal anschauen. Dort wird auch für FAQs auf die SAP-Hinweise 197958 und 499626 verwiesen.
- Wahrscheinlich erweiterst du POITEM um eine Zeile - dabei beachten dass Änderungen auch in den analogen Tabellen mit "X"-Suffix markiert werden müssen (in diesem Fall POITEMX).

Code: Alles auswählen.


  lt_poitem-po_item    = ls_struc-ebelp.
  lt_poitem-material   = ls_struc-matnr.
  lt_poitem-plant      = ls_struc-werks.
  lt_poitem-quantity   = 1.
  lt_poitem-stge_loc   = '1000'.
  APPEND lt_poitem.

  lt_poitemx-po_item    = 'X'.
  lt_poitemx-stge_loc   = 'X'.
  lt_poitemx-plant      = 'X'.
  lt_poitemx-material   = 'X'.
  lt_poitemx-quantity = 'X'.
  APPEND lt_poitemx.


  lt_potextitem-po_item   = ls_struc-ebelp.
  lt_potextitem-text_id   = 'F01'.
  lt_potextitem-text_form = 'EKPO'.
  lt_potextitem-text_line = ls_struc-postext.
  APPEND lt_potextitem.


  lt_poschedule-po_item       = ls_struc-ebelp.
  lt_poschedule-sched_line    = '00001'.
  lt_poschedule-quantity      = 1.
  lt_poschedule-delivery_date = ls_struc-eindt.
  APPEND lt_poschedule.

  lt_poschedulex-po_item       = ls_struc-ebelp.
  lt_poschedulex-sched_line    = '00001'.
  lt_poschedulex-quantity      = 'X'.
  lt_poschedulex-delivery_date = 'X'.
  APPEND lt_poschedulex.


  CALL FUNCTION 'BAPI_PO_CHANGE'
    EXPORTING
      purchaseorder   = ls_struc-ebeln
      no_messaging    = ''
      no_message_req  = ''
      memory_complete = 'X'
    TABLES
      return          = lt_return
      poitem          = lt_poitem
      poitemx         = lt_poitemx
      potextitem      = lt_potextitem
      poschedule      = lt_poschedule
      poschedulex     = lt_poschedulex.
Hallo,

hier noch das Coding. In ls_struc steht dabei der Inhalt der makierten Bestellposition(mit angepasster Positionsnummer).
Zuletzt geändert von dkast am 30.01.2019 15:07, insgesamt 2-mal geändert.

Re: BAPI_PO_CHANGE neue Position

Beitrag von dkast (Specialist / 117 / 7 / 1 ) »
black_adept hat geschrieben:Wahrscheinlich füllst du den wichtigen Übergabeparameter falsch.
Hallo,

oben würde mein code stehen. Hast du vielleicht noch eine Idee für mich?

Re: BAPI_PO_CHANGE neue Position

Beitrag von qyurryus (Specialist / 115 / 88 / 46 ) »
Eine Sache die mir aufgefallen ist: (Annahme: ls_struc-ebelp ist die Positionsnummer der neuen Position)

Code: Alles auswählen.

  ...

  lt_poitemx-po_item    = ls_struc-ebelp.  "Statt 'X' muss hier die neue Positionsnummer eingetragen werden
  lt_poitemx-stge_loc   = 'X'.
  lt_poitemx-plant      = 'X'.
  lt_poitemx-material   = 'X'.
  lt_poitemx-quantity = 'X'.
  APPEND lt_poitemx.

  ...

Seite 1 von 1

Vergleichbare Themen

0
Antw.
104859
Views
1
Antw.
101657
Views
CLFMAS: Change Pointer - Combining one or more Change Pointers in Single IDOC
von ABAPLover » 21.08.2024 22:41 • Verfasst in ABAP® Core
3
Antw.
4853
Views
Neue Position in Vertriebsbeleg aus alter Position anlegen
von shapoc » 18.07.2014 10:54 • Verfasst in Sales and Distribution
4
Antw.
59550
Views
Change DIS
von Icke0801 » 05.04.2017 16:12 • Verfasst in ABAP® Core
2
Antw.
96130
Views
IW 38 - Change Layout
von xhuljano » 18.02.2015 16:12 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Pflegeview zeigt nicht alle Daten an
vor 5 Tagen von sapdepp gelöst 7 / 850
ALV Grid und Dynprofeld
vor 6 Tagen von PeterPaletti 5 / 851

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.

Aktuelle Forenbeiträge

Pflegeview zeigt nicht alle Daten an
vor 5 Tagen von sapdepp gelöst 7 / 850
ALV Grid und Dynprofeld
vor 6 Tagen von PeterPaletti 5 / 851

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
letzen Monat von Rabea1103 1 / 51097
Spool vereinen OTF und PDF
January 2026 von anna2205 1 / 67317
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 79166