07-21-2008 7:03 AM
Hi Guys,
I need to simulate SD pricing for a given data e.g material, customer, etc. I am trying to use the FM PRICING but i am not able to get all triggered conditions. Can someone tell me the data required for this FM to work or are there any other FMs I could use for this requirement.
Thanks,
Ian
07-21-2008 7:08 AM
Hi
Use this BAPI_SALESORDER_SIMULATE..
These also you can check out
BAPIITEMEX Communication Fields: Issue SD Document Item: WWW
BAPISDHEDU Struture of VBEP (Sales Document: Schedule Line Data)
BAPICOND Communication Fields for Maintaining Conditions in the Order
BAPIINCOMP Communication Fields: Incompletion
Regards
Divya
07-21-2008 7:12 AM
Hi,
the function is okay, but you need to fill the structures with a lot of informations.
CALL FUNCTION 'PRICING'
EXPORTING
comm_head_i = wkomk
comm_item_i = wkomp
calculation_type = 'C'
IMPORTING
comm_head_e = wkomk
comm_item_e = wkomp
TABLES
tkomv = xkomv.
Maybe this can help:
types:
BEGIN OF tkunden,
MANDT type mandt,
VKORG type vkorg,
VTWEG type vtweg,
spart type spart,
KUNNR type kunnr,
NAME1 type name1,
WAERS type waers,
Y_AKTIV type c,
konda like knvv-konda,
kdgrp like knvv-kdgrp,
pltyp like knvv-pltyp,
aland like knvi-aland,
BZIRK like knvv-BZIRK,
TAXKD like knvi-taxkd,
ZTERM like knvv-ZTERM,
INCO1 like knvv-INCO1,
VSBED like knvv-VSBED,
END OF tkunden.
types:
BEGIN OF tmattab, "Materialen-Tabelle
matnr LIKE mvke-matnr, "Materialnummer
kondm LIKE mvke-kondm, "Materialgruppe
VRKME LIKE mvke-VRKME, "Basismengeneinheit
vkorg like mvke-vkorg,
vtweg like mvke-vtweg,
dwerk like mvke-dwerk,
bukrs like t001-bukrs,
END OF tmattab.
data: xkomv LIKE komv OCCURS 50 WITH HEADER LINE,
xkunden TYPE tkunden OCCURS 0 WITH HEADER LINE,
wkomk LIKE komk occurs 0 with header line,
wkomp LIKE komp occurs 0 with header line.
mattab type tmattab occurs 0 WITH HEADER LINe.
data: begin of mattab occurs 0.
data:
bukrs like t001-bukrs.
INCLUDE STRUCTURE MVKE_UEB.
data: end of mattab.
FORM bau_wkomp.
CLEAR: wkomp.
MOVE-CORRESPONDING mattab TO wkomp.
wkomp-taxm1 = '1'.
wkomp-werks = mattab-dwerk.
wkomp-bwkey = t001w-bwkey. "Bewertungskreis
wkomp-KPOSN = SY-TABIX * 10. "bst Konditionspositionsnummer
wkomp-kposn = 10. "bst Konditionspositionsnummer
wkomk-wkreg = '05'. "Region des Werkes
wkomp-prsfd = 'X'. "Preisfindung durchführen
wkomp-evrwr = 'X'. "Verrechnungswert ermitteln
wkomp-kznep = ' '. "Kennzeichen: Konditionsausschluß
wkomp-prsok = 'A'. "Preisfindung ok
wkomp-ix_komk = 1. "Indexnr f. interne Tabellen
wkomp-pmatn = mattab-matnr.
wkomp-lagme = mattab-VRKME. "Basismengeneinheit
wkomp-kursk = 1. "Kurs für Preisfindung und Statistiken
wkomp-umvkz = 1. "Zaehler(Faktor) fuer Umrechnung Verkaufsmenge in LME
wkomp-umvkn = 1. "Nenner(Divisor) fuer Umrechnung Verkaufsmenge in LME
wkomp-vabme = ' '. "Variable Bestellmengeneinheit aktiv
wkomp-vrkme = mattab-VRKME.
wkomp-mtart = ' '. "Materialart
wkomp-vkaus = 'S'.
wkomp-MATKL = 'W1'.
wkomp-TAXPS = '000010'.
wkomp-VKAUS = ' '.
wkomp-MEINS = 'ST'.
wkomp-MGLME = '1'.
wkomp-LAGME = 'ST'.
wkomp-MGAME = '1'.
wkomp-VRKME = 'ST'.
wkomp-GEWEI = 'KG'.
wkomp-VOLEH = 'CDM'.
wkomp-KURSK_DAT = s_datum.
wkomp-TAXM2 = '0'.
wkomp-SPART = xkunden-spart.
wkomp-AUBEL = '$TEMP'.
wkomp-AUPOS = '000010'.
wkomp-PRODH1 = '00001'.
wkomp-PRODH2 = '00001'.
wkomp-ZZMVGR1 = '01'.
wkomp-ZZROUTE = '01'.
wkomp-ZZNACHN = 'X'.
wkomp-MVGR1 = '01'.
wkomp-KTGRM = '01'.
wkomp-ZZPSTYV = 'ZDDS'.
wkomp-SCMNG = '1'.
wkomp-SCHME = 'ST'.
wkomp-MVGR3 = 'A'.
wkomp-PSTYV = 'ZDDS'.
*
CLEAR: wkomp-anz_tage,wkomp-anz_monate,wkomp-anz_wochen,
wkomp-anz_jahre, wkomp-stf_tage, wkomp-stf_monate,
wkomp-stf_wochen, wkomp-stf_jahre
WITH 1.
ENDFORM. " bau_wkomp
FORM bau_wkomk.
CLEAR: wkomk.
MOVE-CORRESPONDING xkunden TO wkomk.
wkomk-waerk = xkunden-waers.
wkomk-ix_komk = 1."Indexnummer fuer interne Tabellen
wkomk-fkart = 'FX'. "Fakturaart
IF knvv-bokre = 'X'. "Kennzeichen : Kunde ist relevant für Bonus
wkomk-borel = 'X'. "relevant für bonus
wkomk-boavo = 'X'. "Bonusabwicklung aktiv in der Verkaufsorganisation
wkomk-borvf = 'X'. "Faktura ist relevant für die Bonusabrechnung
ENDIF.
wkomk-vkorgau = xkunden-vkorg.
wkomk-auart_sd = 'TA'. "Verkaufsbelegart
wkomk-trtyp = 'H'. "Transaktionstyp
wkomk-knrze = xkunden-kunnr.
wkomk-kunwe = xkunden-kunnr.
wkomk-auart = 'TA'. "Auftragsart
wkomk-vbtyp = 'C'. "Vertriebsbelegtyp
wkomk-auart_sd = 'TA'. "Verkaufsbelegart
wkomk-werks = mattab-dwerk. "Werk
wkomk-audat = s_datum. "Belegdat.(Ein- bzw. Ausgangsdatum)
wkomk-fkdat = s_datum. "Fakturadat.für Fakturaindex und Druck
wkomk-erdat = s_datum. "Datum, an dem der Satz hinzugefügt wurde
wkomk-prsdt = s_datum. "Datum für Preisfindung und Währungskurs
wkomk-BELNR = ' '.
wkomk-KNUMV = ' '.
wkomk-KONDA = xkunden-konda.
wkomk-kdgrp = xkunden-kdgrp.
wkomk-pltyp = xkunden-pltyp.
wkomk-BUKRS = mattab-bukrs.
wkomk-HWAER = s_hwaer.
wkomk-KURRF_DAT = s_datum.
wkomk-KUNNR = xkunden-kunnr.
wkomk-KUNRE = xkunden-kunnr.
wkomk-ZTERM = xkunden-ZTERM.
wkomk-kappl = 'V'.
wkomk-KALSM = 'ZHELL2'.
wkomk-FBUDA = s_datum.
wkomk-INCO1 = xkunden-INCO1.
wkomk-LAND1 = xkunden-aland.
wkomk-ALAND = xkunden-aland.
wkomk-TAXK1 = xkunden-taxkd.
wkomk-LAND1_WE = xkunden-aland.
wkomk-ALAND_WERK = xkunden-aland.
wkomk-HITYP_PR = 'A'.
wkomk-VSBED = xkunden-VSBED.
wkomk-ZZTAXKD = xkunden-taxkd.
wkomk-ZZWEEKDAY = '5'.
wkomk-ZZVSBED = xkunden-VSBED.
wkomk-ZZERNAM = sy-uname.
wkomk-DRUKZ_S = 'X'.
wkomk-SPART = xkunden-spart.
wkomk-BZIRK = xkunden-BZIRK.
wkomk-BOAVO = 'X'.
wkomk-ZZWEEKDAY = '4'.
wkomk-ZZVSBED = xkunden-vsbed.
wkomk-DRUKZ_S = ' '.
ENDFORM.
FORM get_kna1.
SELECT * FROM kna1 WHERE kunnr in s_kunnr.
select single * from knvi where kunnr eq kna1-kunnr
and aland eq kna1-land1.
if sy-subrc eq 0.
xkunden-TAXKD = knvi-TAXKD.
endif.
SELECT * FROM knvv WHERE vkorg in s_vkorg
AND vtweg in s_vtweg
and spart in s_spart
AND kunnr eq kna1-kunnr.
select single * from knvi where kunnr eq kna1-kunnr
and aland eq kna1-land1.
Währung spezifizieren
out_waers = knvv-waers.
xkunden-aland = knvi-aland.
MOVE-CORRESPONDING kna1 TO xkunden.
MOVE-CORRESPONDING knvv TO xkunden.
collect xkunden.
clear xkunden.
endselect.
endselect.
ENDFORM. " get_kna1
FORM get_material.
SELECT * FROM mvke where matnr in s_matnr
and KONDM in s_KONDM
and prodh in s_PRODH
and vmsta in s_vmsta.
move-CORRESPONDING mvke to mattab.
Buchungsreisdaten
select single * from t001k where bwkey eq mvke-dwerk.
if sy-subrc eq 0.
mattab-bukrs = t001k-bukrs.
endif.
collect mattab.
endselect.
ENDFORM. " get_material
08-21-2008 11:24 PM
I am also trying to do the same type of SD pricing simulation - given customer, material, sales org., dist. chan., division, etc. Does anyone know what the minimum required fields are for FM PRICING?
What are the minimum required fields we need to fill out in the COMM_HEAD1 and COMM_ITEM1 structures? The previous example is not very good.
Thanks,
08-22-2008 6:46 AM
HI,
*****
data: begin of mattab occurs 0.
data:
bukrs like t001-bukrs.
INCLUDE STRUCTURE MVKE_UEB.
data: end of mattab.
****
MOVE-CORRESPONDING mattab TO wkomp.
wkomp-taxm1 = '1'.
wkomp-werks = mattab-dwerk.
wkomp-bwkey = t001w-bwkey. "Bewertungskreis
wkomp-KPOSN = SY-TABIX * 10. "bst Konditionspositionsnummer
wkomp-kposn = 10. "bst Konditionspositionsnummer
wkomk-wkreg = '05'. "Region des Werkes
wkomp-prsfd = 'X'. "Preisfindung durchführen
wkomp-evrwr = 'X'. "Verrechnungswert ermitteln
wkomp-kznep = ' '. "Kennzeichen: Konditionsausschluß
wkomp-prsok = 'A'. "Preisfindung ok
wkomp-ix_komk = 1. "Indexnr f. interne Tabellen
wkomp-pmatn = mattab-matnr.
wkomp-lagme = mattab-VRKME. "Basismengeneinheit
wkomp-kursk = 1. "Kurs für Preisfindung und Statistiken
wkomp-umvkz = 1. "Zaehler(Faktor) fuer Umrechnung Verkaufsmenge in LME
wkomp-umvkn = 1. "Nenner(Divisor) fuer Umrechnung Verkaufsmenge in LME
wkomp-vabme = ' '. "Variable Bestellmengeneinheit aktiv
wkomp-vrkme = mattab-VRKME.
wkomp-mtart = ' '. "Materialart
wkomp-vkaus = 'S'.
wkomp-MATKL = 'W1'.
wkomp-TAXPS = '000010'.
wkomp-VKAUS = ' '.
wkomp-MEINS = 'ST'.
wkomp-MGLME = '1'.
wkomp-LAGME = 'ST'.
wkomp-MGAME = '1'.
wkomp-VRKME = 'ST'.
wkomp-GEWEI = 'KG'.
wkomp-VOLEH = 'CDM'.
wkomp-KURSK_DAT = s_datum.
wkomp-TAXM2 = '0'.
wkomp-SPART = xkunden-spart.
wkomp-AUBEL = '$TEMP'.
wkomp-AUPOS = '000010'.
wkomp-PRODH1 = '00001'.
wkomp-PRODH2 = '00001'.
wkomp-ZZMVGR1 = '01'.
wkomp-ZZROUTE = '01'.
wkomp-ZZNACHN = 'X'.
wkomp-MVGR1 = '01'.
wkomp-KTGRM = '01'.
wkomp-ZZPSTYV = 'ZDDS'.
wkomp-SCMNG = '1'.
wkomp-SCHME = 'ST'.
wkomp-MVGR3 = 'A'.
wkomp-PSTYV = 'ZDDS'.
*******
types:
BEGIN OF tkunden,
MANDT type mandt,
VKORG type vkorg,
VTWEG type vtweg,
spart type spart,
KUNNR type kunnr,
NAME1 type name1,
WAERS type waers,
Y_AKTIV type c,
konda like knvv-konda,
kdgrp like knvv-kdgrp,
pltyp like knvv-pltyp,
aland like knvi-aland,
BZIRK like knvv-BZIRK,
TAXKD like knvi-taxkd,
ZTERM like knvv-ZTERM,
INCO1 like knvv-INCO1,
VSBED like knvv-VSBED,
END OF tkunden.
data: xkunden TYPE tkunden OCCURS 0 WITH HEADER LINE,
*****
MOVE-CORRESPONDING xkunden TO wkomk.
wkomk-waerk = xkunden-waers.
wkomk-ix_komk = 1."Indexnummer fuer interne Tabellen
wkomk-fkart = 'FX'. "Fakturaart
IF knvv-bokre = 'X'. "Kennzeichen : Kunde ist relevant für Bonus
wkomk-borel = 'X'. "relevant für bonus
wkomk-boavo = 'X'. "Bonusabwicklung aktiv in der Verkaufsorganisation
wkomk-borvf = 'X'. "Faktura ist relevant für die Bonusabrechnung
ENDIF.
wkomk-vkorgau = xkunden-vkorg.
wkomk-auart_sd = 'TA'. "Verkaufsbelegart
wkomk-trtyp = 'H'. "Transaktionstyp
wkomk-knrze = xkunden-kunnr.
wkomk-kunwe = xkunden-kunnr.
wkomk-auart = 'TA'. "Auftragsart
wkomk-vbtyp = 'C'. "Vertriebsbelegtyp
wkomk-auart_sd = 'TA'. "Verkaufsbelegart
wkomk-werks = mattab-dwerk. "Werk
wkomk-audat = s_datum. "Belegdat.(Ein- bzw. Ausgangsdatum)
wkomk-fkdat = s_datum. "Fakturadat.für Fakturaindex und Druck
wkomk-erdat = s_datum. "Datum, an dem der Satz hinzugefügt wurde
wkomk-prsdt = s_datum. "Datum für Preisfindung und Währungskurs
wkomk-BELNR = ' '.
wkomk-KNUMV = ' '.
wkomk-KONDA = xkunden-konda.
wkomk-kdgrp = xkunden-kdgrp.
wkomk-pltyp = xkunden-pltyp.
wkomk-BUKRS = mattab-bukrs.
wkomk-HWAER = s_hwaer.
wkomk-KURRF_DAT = s_datum.
wkomk-KUNNR = xkunden-kunnr.
wkomk-KUNRE = xkunden-kunnr.
wkomk-ZTERM = xkunden-ZTERM.
wkomk-kappl = 'V'.
wkomk-KALSM = 'ZHELL2'.
wkomk-FBUDA = s_datum.
wkomk-INCO1 = xkunden-INCO1.
wkomk-LAND1 = xkunden-aland.
wkomk-ALAND = xkunden-aland.
wkomk-TAXK1 = xkunden-taxkd.
wkomk-LAND1_WE = xkunden-aland.
wkomk-ALAND_WERK = xkunden-aland.
wkomk-HITYP_PR = 'A'.
wkomk-VSBED = xkunden-VSBED.
wkomk-ZZTAXKD = xkunden-taxkd.
wkomk-ZZWEEKDAY = '5'.
wkomk-ZZVSBED = xkunden-VSBED.
wkomk-ZZERNAM = sy-uname.
wkomk-DRUKZ_S = 'X'.
wkomk-SPART = xkunden-spart.
wkomk-BZIRK = xkunden-BZIRK.
wkomk-BOAVO = 'X'.
wkomk-ZZWEEKDAY = '4'.
wkomk-ZZVSBED = xkunden-vsbed.
wkomk-DRUKZ_S = ' '.
Regards
Nicole