adesso business consulting Stellenangebote
Software Engineer Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
Simulation der Konditionen anhand vom Einkaufsinfosatz und letzte Bestellung mit Rückgabe der Konditionen im Format des Kalkulationsschemas: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „Kategorie:Codeschnipsel Kategorie:Clean-Core-Level_C Der Funktionsbaustein ME_PO_PRICE_SIMULATION kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück. In der Transaktion ME1M ist eine Preissimulation möglich. Dort werden die folgenden internen FuBas verwendet: * ME_PRICING_REF…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 10: | Zeile 10: | ||
* [[ME_PRICING_DELIVERY_PLAN]] | * [[ME_PRICING_DELIVERY_PLAN]] | ||
Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, | Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, wird die letzte Bestellposition herangezogen, insofern sie nicht als gelöscht markiert ist. | ||
Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm: | Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm: | ||
Aktuelle Version vom 24. März 2026, 11:16 Uhr
Der Funktionsbaustein ME_PO_PRICE_SIMULATION kann verwendet werden, wenn für eine Preissimulation kein Positions- und Kontierungstyp verwendet wird. Zudem ist die Rückgabe rein auf die Konditionsarten beschränkt, d.h. Zwischensummen bekommt man nicht zurück.
In der Transaktion ME1M ist eine Preissimulation möglich. Dort werden die folgenden internen FuBas verwendet:
Die Preissimulation baut auf den Infosatz bzw. wenn der Nettowert = 0 ist, wird die letzte Bestellposition herangezogen, insofern sie nicht als gelöscht markiert ist.
Dies in Rahmen bei eigenem Coding verwenden zu können, zeigt ein kleines Testprogramm:
*&---------------------------------------------------------------------*
*& Report YMM_TEST_PROGRAM
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ymm_test_program.
DATA: BEGIN OF tmepr OCCURS 30.
INCLUDE STRUCTURE meprtab.
DATA: END OF tmepr.
DATA komp TYPE komp.
DATA komk TYPE komk.
SELECT SINGLE FROM eina
FIELDS *
WHERE infnr = '5300000873'
INTO @DATA(eina).
SELECT SINGLE FROM eine
FIELDS *
WHERE infnr = '5300000873'
AND ekorg = '1000'
AND esokz = '0'
INTO @DATA(eine).
SELECT SINGLE FROM lfm1
FIELDS *
WHERE lifnr = '0000139156'
AND ekorg = '1000'
INTO @DATA(lfm1).
CALL FUNCTION 'ME_PRICING_REFRESH'.
CALL FUNCTION 'ME_PRICING_INFORECORD'
EXPORTING
infoa = eina
infoe = eine
lieferant = lfm1
simulation = 'X'
IMPORTING
preisk = komk
preisp = komp
TABLES
elemente = tmepr.
FIELD-SYMBOLS: <fs> TYPE table.
DATA tab TYPE TABLE OF komv.
DATA: l_variable(40) VALUE '(SAPLMEPR)GKOMV[]'.
* Retrieve values from calling program
ASSIGN (l_variable) TO <fs>.
MOVE <fs> TO tab.
WRITE '.'.
SELECT SINGLE FROM eina
FIELDS *
WHERE infnr = '5300010050'
INTO @DATA(eina2).
SELECT SINGLE FROM eine
FIELDS *
WHERE infnr = '5300010050'
AND ekorg = '1000'
AND esokz = '0'
INTO @DATA(eine2).
SELECT SINGLE FROM lfm1
FIELDS *
WHERE lifnr = '0000263203'
AND ekorg = '1000'
INTO @DATA(lfm12).
CALL FUNCTION 'ME_PRICING_REFRESH'.
CALL FUNCTION 'ME_PRICING_INFORECORD'
EXPORTING
infoa = eina2
infoe = eine2
lieferant = lfm12
simulation = 'X'
IMPORTING
preisk = komk
preisp = komp
TABLES
elemente = tmepr.
IF komp-netwr = 0.
"IF eine-ebeln NE space AND eine-bstyp NE bstyp-kont AND
"vorgang NE 'AP'.
SELECT SINGLE * FROM ekpo WHERE ebeln EQ '4800000564'
AND ebelp EQ '00060'
AND loekz EQ @space
INTO @DATA(ekpo).
SELECT SINGLE * FROM ekko WHERE ebeln EQ '4800000564'
INTO @DATA(ekko).
"ENDIF.
CALL FUNCTION 'ME_PRICING_DIALOG'
EXPORTING
i_ekpo = ekpo
dunkel = 'X'
skonto = space "i_skonto
bezugs = space "i_bezugs
effektiv = space. "i_effekt
* menge = eine-norbm
* meins = eina-meins
* termin = sy-datlo.
"IMPORTING
" exitflag = exitflag.
DATA ls_isi_me_pricing_delivery TYPE isi_me_pricing_delivery_plan.
CALL FUNCTION 'ME_PRICING_DELIVERY_PLAN'
EXPORTING
simulation = 'X'
dialog = space
"material = mt06e war im Durchlauf aktiv. Besser versorgen
belegkopf = ekko
belegposition = ekpo
infonummer = eine-infnr
infotyp = eine-esokz
infowerk = eine-werks
is_enhancement = ls_isi_me_pricing_delivery "IS2ERP
IMPORTING
preisp = komp
preisk = komk.
CLEAR tab.
* Retrieve values from calling program
ASSIGN (l_variable) TO <fs>.
MOVE <fs> TO tab.
DELETE tab WHERE knumv IS INITIAL.
WRITE '.'.
ENDIF.