cancel
Showing results for 
Search instead for 
Did you mean: 

Pricing Procedure

Former Member
0 Kudos

Dear Friends,

Thanks in Advance.

Is there any function module for the Pricing Procedure.

I have used PRICING Function Module.. but no result.

Regards:

Sridhar.J

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi sridhar,

ok

from my suggestion use the table

a016 and konp table .

regards

surender

Former Member
0 Kudos

Presently I am Using A016 Table only...

But Problem is i have to get the Data from A016 and equate it with KONP Table and Get the Data based on the Condition Records.

Here in KONP Table , there is no value... i mean like KWERT Field.

So here i am calculating Manually which is a Lengthy Proces..

This is the only process or any other is there.

I am doing for the Material Management (MM) Module.

Regards:

Sridhar.J

Former Member
0 Kudos

It depends on the business fields your business uses to determine pricing in your case. I can give you typical coding which was used in one of my previous implementations, you need to customize it with your specific fields for your specific pricing criterion of your business.

FORM GET_TODAYS_PRICE USING KUNNR VBELN POSNR SYDATUM.
CLEAR: TKOMK, XKOMV.
REFRESH XKOMV.
MOVE-CORRESPONDING SY             TO TKOMK.
clear vbak.
select single * into vbak from vbak
  where vbeln = vbeln.
CLEAR KNVV.
SELECT SINGLE * INTO KNVV FROM KNVV
  WHERE KUNNR = KUNNR
    AND VKORG = vbak-vkorg
    AND VTWEG = vbak-vtweg
    AND SPART = vbak-spart .
CLEAR KNA1.
SELECT SINGLE * INTO KNA1 FROM KNA1
  WHERE KUNNR = KUNNR.
MOVE-CORRESPONDING KNVV    TO TKOMK.
LOOP AT HLIST.
  CASE HLIST-LEVEL.
    WHEN 1 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR01.
    WHEN 2 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR02.
    WHEN 3 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR03.
    WHEN 4 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR04.
    WHEN 5 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR05.
    WHEN 6 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR06.
    WHEN 7 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR07.
    WHEN 8 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR08.
    WHEN 9 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR09.
    WHEN 10 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR10.
    WHEN 11 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR11.
    WHEN 12 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR12.
    WHEN 13 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR13.
    WHEN 14 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR14.
    WHEN 15 .
      MOVE HLIST-KUNNR     TO TKOMK-HIENR15.
  ENDCASE.
ENDLOOP.
MOVE KNA1-LAND1            TO TKOMK-ALAND.
MOVE KNVV-WAERS            TO TKOMK-HWAER.
MOVE KNVV-WAERS            TO TKOMK-WAERK.
MOVE 'V'                   TO TKOMK-KAPPL.
* Current price needs current pricing procedure.
select single kalsm from t683v   
  into TKOMK-KALSM               
  where vkorg = vbak-vkorg   
    and vtweg = vbak-vtweg   
    and spart = vbak-spart   
    and kalvg = 'G' and          
    and kalks = 'E' . 
MOVE SYDATUM               TO TKOMK-PRSDT.
MOVE SYDATUM               TO TKOMK-FKDAT.
MOVE SYDATUM               TO TKOMK-ERDAT.
MOVE vbak-auart            TO TKOMK-AUART.
MOVE vbak-vkorg            TO TKOMK-VKORGAU.
MOVE 1                     TO TKOMK-IX_KOMK.

CLEAR: VBAP, TKOMP, MARC.
SELECT SINGLE * INTO VBAP FROM VBAP
  WHERE VBELN = VBELN
    AND POSNR = POSNR.
MOVE VBAP-MATNR            TO TKOMP-MATNR.
SELECT SINGLE PRCTR INTO TKOMP-PRCTR FROM MARC
  WHERE MATNR = VBAP-MATNR
    AND WERKS = VBAP-WERKS .
MOVE '000010'              TO TKOMP-KPOSN.
CLEAR MARA.
SELECT SINGLE * INTO MARA FROM MARA
  WHERE MATNR = VBAP-MATNR.
CLEAR MVKE.
SELECT SINGLE * INTO MVKE FROM MVKE
  WHERE MATNR = VBAP-MATNR
    AND VKORG = vbak-vkorg
    AND VTWEG = vbak-vtweg.
  MOVE-CORRESPONDING MARA      TO TKOMP.
  MOVE-CORRESPONDING MVKE      TO TKOMP.
  MOVE VBAP-MATNR              TO TKOMP-PMATN.
  MOVE VBAP-ZMENG              TO TKOMP-MGLME.
  MOVE VBAP-ZMENG              TO TKOMP-MGAME.
  MOVE MARA-MEINS              TO TKOMP-VRKME.
  MOVE 0                       TO TKOMP-NETWR.
  MOVE 0                       TO TKOMP-MWSBP.
  MOVE 'X'                     TO TKOMP-SKTOF.
  MOVE 'X'                     TO TKOMP-PRSFD.
  MOVE 'X'                     TO TKOMP-EVRWR.
  MOVE 0                       TO TKOMP-WAVWR.
  MOVE 1                       TO TKOMP-KURSK.
  MOVE 'A'                     TO TKOMP-PRSOK.
  MOVE KNVV-ZTERM              TO TKOMP-ZTERM.
  MOVE 0                       TO TKOMP-IX_VBAP.
  MOVE 1                       TO TKOMP-IX_KOMK.
CALL FUNCTION 'PRICING'
     EXPORTING
          COMM_HEAD_I      = TKOMK
          COMM_ITEM_I      = TKOMP
          CALCULATION_TYPE = 'C'
          PRELIMINARY      = ' '
     IMPORTING
          COMM_HEAD_E      = TKOMK
          COMM_ITEM_E      = TKOMP
     TABLES
          TKOMV            = XKOMV.
SORT XKOMV BY KSCHL.
ENDFORM.

Former Member
0 Kudos

hi sridhar

but there is no such field as kwert in konp table.

there price values r in kbetr "Rate (condition amount or percentage) where no scale exists.

pass the kschl, knumh of a016 to kschl, knumh of konp and there is a kbetr field which contains a pricing value.

regards

surender

Answers (3)

Answers (3)

Former Member
0 Kudos

hi

check the fm calculate_tax_item.

and use the taxcom structure.

the below parameters for taxcom structure use it.

bukrs

budat

waers

ebeln

ebelp

kposn

mwskz

txjcd

shkzg

xmwst its value would be 'X' it applying tax automatically

wrbtr

lifnr

land1

ekorg

hwaer

llief

bldat

matnr

werks

bwtar

matkl

meins

mglme

mtart

and the tax value are stored in wmwst.


 IT_TAXCOM-BUKRS = WT_EKKO-BUKRS.
  IT_TAXCOM-BUDAT = WT_EKBE-BUDAT.
  IT_TAXCOM-WAERS = WT_EKKO-WAERS.
  IT_TAXCOM-EBELN = WT_EKPO-EBELN.
  IT_TAXCOM-EBELP = WT_EKPO-EBELP.
  IT_TAXCOM-KPOSN = WT_EKPO-EBELP.
  IT_TAXCOM-MWSKZ = WT_EKPO-MWSKZ.
  IT_TAXCOM-TXJCD = WT_EKPO-TXJCD.
  IT_TAXCOM-SHKZG = 'H'.                "CREDIT/DEBIT INDICATOR
  IT_TAXCOM-XMWST = 'X'.                "APPLYING TAX AUTOMATICALLY
  IT_TAXCOM-WRBTR = WT_EKBE-DMBTR.
  IT_TAXCOM-LIFNR = WT_EKKO-LIFNR.
  IT_TAXCOM-LAND1 = WT_EKKO-LANDS.
  IT_TAXCOM-EKORG = WT_EKKO-EKORG.
  IT_TAXCOM-HWAER = 'INR'.
  IT_TAXCOM-LLIEF = WT_EKKO-LLIEF.
  IT_TAXCOM-BLDAT = WT_EKKO-BEDAT.
  IT_TAXCOM-MATNR = WT_EKPO-MATNR.
  IT_TAXCOM-WERKS = WT_EKPO-WERKS.
  IT_TAXCOM-BWTAR = WT_EKPO-BWTAR.
  IT_TAXCOM-MATKL = WT_EKPO-MATKL.
  IT_TAXCOM-MEINS = WT_EKPO-MEINS.
  IT_TAXCOM-MGLME = WT_EKBE-MENGE.
  IT_TAXCOM-MTART = WT_EKPO-MTART.
CALL FUNCTION 'CALCULATE_TAX_ITEM'
    EXPORTING
*     ANZAHLUNG                 = ' '
*     DIALOG                    = ' '
*     DISPLAY_ONLY              = ' '
*     INKLUSIVE                 = ' '
*     I_ANWTYP                  = ' '
*     I_DMBTR                   = '0'
*     I_MWSTS                   = '0'
      I_TAXCOM                  = IT_TAXCOM
*     PRUEFEN                   = ' '
*     RESET                     = ' '
   IMPORTING
*     E_NAVFW                   =
     E_TAXCOM                  =  IT_TAXCOM
*     E_XSTVR                   =
*     NAV_ANTEIL                =
*   TABLES
*     T_XKOMV                   =
*   EXCEPTIONS
*     MWSKZ_NOT_DEFINED         = 1
*     MWSKZ_NOT_FOUND           = 2
*     MWSKZ_NOT_VALID           = 3
*     STEUERBETRAG_FALSCH       = 4
*     COUNTRY_NOT_FOUND         = 5
*     OTHERS                    = 6
            .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  IF SY-SUBRC EQ 0.
    T_MWSBP = IT_TAXCOM-WMWST. "TAX AMOUNT IN DOCUMENT
  ENDIF.

.

i hope it l be helpful.

regards

surender.s

Former Member
0 Kudos

Hi Surender,

I am not Asking for the TAX Procudeure...

I am Asking for the Pricing Procudure...

Regards:

Sridhar.J

Former Member
0 Kudos

Hi,

U can use Fm to determine the pricing procedure GM_PRICING_GET

Regards,

Dwaraka.S

Former Member
0 Kudos

Hello ,

Please try /SAPHT/DRM_OUTPUT_PRICING_PROC function Module.

Thanks,

Gunjan