Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Simulation of SD pricing

Former Member

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

4 REPLIES 4

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

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,

0 Kudos

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