SAP Jobsuche bei DV-Treff
Tim54321
  • Tim54321
  • SAP Forum - Neuling Thema Starter
vor 9 Jahre
Guten Tag zusammen,

ich habe eine neue Konditionsart erstellt und diese anschließend in das Kalkulationsshema eingebunden. Hier wird ein Stückzuschlag kalkuliert (z.b.10Euro) und multipliziert mit der Menge auf die jeweilige Bestellposition aufgeschlagen.

Einstellungen der Konditionsart:

Konditionsklasse ist Zu- und Abschläge.

Rechenregel ist Formel.

Manuelle Eingaben sind deaktivert.

Haken bei Positionszuschlag.

Bezugsgröße ist Mengenstaffel.

Die Formel und Bedingung hab ich unter VOFM unter Bedingung->Preisbildung und Formel->Konditionswert angelegt.

Das funktioniert auch alles soweit, nur das der Zuschlag erst beim manuellen Anstoß der neuen Preisfindung für eine Position im Einkaufsbeleg in me22 berechnet wird. Nach der Umwandlung einer Banf in eine Bestellung wird dieser nicht berücksichtigt. Bei der Analyse der Konditionen erscheint folgende Fehlermeldung bei der Konditionsart:

VE107 - Kondition ohne Konditionssatz (nicht relevant) - VE 107

Hab leider keine Idee wie ich den Ausschluß der Kondition umgehenen kann.

Schonmal vielen Dank für eure Hilfe.

Viele Grüße

Tim

Förderer

Tim54321
  • Tim54321
  • SAP Forum - Neuling Thema Starter
vor 9 Jahre
Hab mal überlegt über einen Userexit oder so, nachdem Speichern, irgendwie für alle Positionen eine neue Preisfindung anstoßen. Ist sowas generell möglich oder bin ich da auf dem falschen Weg?
Tim54321
  • Tim54321
  • SAP Forum - Neuling Thema Starter
vor 9 Jahre
Bin einen Schritt weiter, mit den BADI ME_DEFINE_CALCTYPE mit Rückgabe 'B' und ME_CHECK_ALL_ITEMS mit Rückgabe 'X' werden nun beim Anstoß der neuen Preisbildung für eine Bestellposition alle Bestellpositionen aktualisiert.

Hab jetzt versucht über das BADI ME_PROCESS_PO_CUST - OPEN die neue Preisbildung über eine Änderungen in den Konditionen auszulösen, allerdings wird nur der Wert geändert ohne die Preise neu zu kalkulieren.

METHOD if_ex_me_process_po_cust~open.
  DATA: ls_mepoheader  TYPE mepoheader,
        cl_po TYPE REF TO cl_po_header_handle_mm.

* Positionsdaten holen

  ls_mepoheader = im_header->get_data( ).

* Änderungen durchführen
ls_mepoheader-zbd1t = 10.
* Positionsdaten übergeben


  cl_po ?= im_header.

  cl_po->my_ibs_firewall_on = 'X'.
  cl_po->my_cust_firewall_on = 'X'.

  im_header->set_data( ls_mepoheader ).

ENDMETHOD.

Müsste an der Stelle eigentlich nur eine Änderung mit anschließendem Enter simulieren, jemand eine Idee.

Geht wahrscheinlich leider nicht, werde daher umbauen auf die Pflege der zusätzlichen Konditionen für alle Positionen über ME_PROCESS_PO_CUST - HEADER .

Funktioniert jetzt nach der Umstellung, hole mit ME_PROCESS_PO_CUST - ITEM den Header, anschließend über den Header die Positionen und füge die Konditionen hinzu.