• April 20, 2026
  • Kishore Thutaram
  • 0

Requirement – Simulate the pricing in SD

Steps : In any Program/Calss or User-Exit

Build the KOMK and KOMP values as needed in the program dynamically

Implement the below code – In this example, values are hardcoded

DATA : lt_komv TYPE komv_itab,
ls_komk TYPE komk,
ls_komp TYPE komp.

ls_komk-vkorg = '1000'. "Sales org
ls_komk-vtweg = '10'. "D.channel
ls_komk-spart = '00'. "Division
ls_komk-kunnr = '1000000000'. "customer
ls_komk-auart = 'ASTA'."doctype
ls_komk-kappl = 'V'.
ls_komk-werks = 'A000'. "Plant
ls_komk-kalsm = 'ASDTDUS'. "Pricing procedure
ls_komk-prsdt =  '20251013'.
ls_komk-fbuda =  '20251013'.
ls_komk-fkdat = '20250206'.
ls_komk-erdat =  '20251013'.
ls_komk-audat  =  '20251013'.
ls_komk-land1   = 'US'.
ls_komk-regio   = 'PA'.
ls_komk-taxk1  = '1'.
ls_komk-vbtyp  = 'C'.
ls_komk-kokrs  = 'A000'.
ls_komk-sap_object_type = 'SALES ORDER'.
ls_komk-crossitem_prc_date = '20251013'.
ls_komk-konda  = '01'.
ls_komk-kdgrp  = '01'.
ls_komk-hwaer   = 'USD'.
ls_komk-waerk  = 'USD'.
ls_komk-zterm  = 'B204'.
ls_komk-inco1  = 'FOB'.
ls_komk-inco2  = 'PPD'.
ls_komk-inco2_l = 'PPD'.
ls_komk-pltyp   =  'ST'.
ls_komk-aland    = 'US'.
ls_komk-wkreg    = 'MA'.
ls_komk-vsart    =  'PP'.
ls_komk-konda    = '01'.
ls_komk-kdgrp    = '01'.
ls_komk-bukrs    = '1000'.
ls_komk-knrze    = '1000000000'.
ls_komk-kunre    = '1000000000'.
ls_komk-kunwe    = '1000000000'.
ls_komk-vkorgau  =  '1000'.
ls_komk-fkart    = 'ASTA'.
ls_komk-borel    = 'X'.



ls_komp-kposn     = '000010'.
ls_komp-matnr     = 'MAT123'. "Mat
ls_komp-werks  = 'A000'. "Plant
ls_komp-wkreg   = 'MA'.
ls_komp-bwkey  =  'A000'.
ls_komp-meins  =  'EA'.
ls_komp-mglme  =  '1.000'.
ls_komp-sktof  = 'X'.
ls_komp-attyp  = '00'.
ls_komp-wkreg  = 'MA'.
ls_komp-matkl  = 'MATGGB01'.
ls_komp-taxps  = '000010'.
ls_komp-mgame  = '1.000'.
ls_komp-vrkme  = 'EA'.
ls_komp-lagme  = 'EA'.
ls_komp-umvkz  = '1'.
ls_komp-umvkn  = '1'.
ls_komp-pmatn  = 'MAT123'. "Material
ls_komp-prsfd  = 'X'.
ls_komp-evrwr  = 'X'.
ls_komp-prctr  = '1620'.
ls_komp-aubel  = '$TEMP'.
ls_komp-aupos = '000010'.
ls_komp-pstyv = 'ATAN' "Item. category
ls_komp-katr6         = '1A1'.
ls_komp-kursk                 = '1.00000'.
ls_komp-spart = '10'.
ls_komp-kursk_dat   = '20251013'.
ls_komp-prsok = 'A'.
ls_komp-fg_recalc      = 'X'.
ls_komp-use_multival_attr = 'X'.
ls_komp-lprio =  '02'.
ls_komp-ix_komk   = '1'.
ls_komp-ix_vbap   = '0'.
ls_komp-knttp   = 'M'.


CALL FUNCTION 'PRICING'
  EXPORTING
    calculation_type = 'C'
    comm_head_i      = ls_komk
    comm_item_i      = ls_komp
  TABLES
    tkomv            = lt_komv
  • SVBAP =
  • CHANGING
  • REBATE_DETERMINED = ‘ ‘
    .

Kishore Thutaram

SAP Solution Architect | 16+ Years' Experience in SAP | Sharing Practical SAP Knowledge | Engineering Graduate with Expertise in SAP Architecture

https://fiowelt.com