Escolar Documentos
Profissional Documentos
Cultura Documentos
Via Menus
Dicas
1.2 Fórmulas em esquemas de cálculo ( VOFM )
Via Menus
Dicas
Existem dois tipos de fórmulas sendo base para condição e valor da condição.
1.3 Fórmulas em esquemas de cálculo ( VOFM )
Via Menus
Dicas
Para atualizar a fórmula deve-se utilizar uma faixa acima de 800, pois as faixas anteriores são reservadas pela SAP.
1.4 Fórmulas em esquemas de cálculo ( VOFM )
Via Menus
Dicas
Ao clicar em texto de origem, é aberto o editor de programas da SAP.
1.5 esquemas de cálculo ( VOFM )
Via Menus
Dicas
Não esqueça de ativar a fórmula, senão a mesma não aparece no match-code para ser utilizada.
1.6 Transporte da Formula....para outro Client
Via Menus
Dicas
Não esqueça de incluir este programa na ultima linha da CR, R3TR XPRA RV80HGEN, para ser executada no client de destino da
change request.
1.7 Incluindo a fórmula no esquema de cálculo ( V/08 )
Via Menus
Dicas
Observe que existem dois tipos de fórmulas na pricing, uma calcula a base de calculo e outra que obtém o valor.
Este ponto normalmente é parametrizado por um funcional, contudo se vc souber qual o esquema de calculo e a condition que vai
utilizar a fórmula é só alterar e gravar.
OBS: No mm a transação que altera pricing não é a V/08 utilizada por SD, execute a Transação: M/08
1.8 Incluindo a fórmula no esquema de cálculo ( V/08 )
Via Menus
Dicas
Observe que os valores são carregados para campos pré-definidos no SAP.
EXEMPLO: Linhas 252 e 253 do programa acima.
Exemplos de Fórmulas Utilizadas em
Clientes:
Fórmula 1
*---------------------------------------------------------------------*
* FORM FRM_KONDI_WERT_916 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM FRM_KONDI_WERT_916.
* TABLES: j_1btxic2, j_1btxic1.
TABLES: J_1BTXIP1 , J_1BTXIP2.
DATA: VP_STUNR LIKE XKOMV-STUNR.
DATA: VP_AUX1(8) DECIMALS 4 TYPE P,
VP_AUX2(8) DECIMALS 4 TYPE P,
VP_AUX3(8) DECIMALS 4 TYPE P,
VP_TOTAL(8) DECIMALS 4 TYPE P,
VP_DATA(8).
DATA: VP_ZCSR(8) DECIMALS 4 TYPE P,
VP_ZCSS(8) DECIMALS 4 TYPE P,
VP_ZPRO(8) DECIMALS 4 TYPE P,
VP_ZPIP(8) DECIMALS 4 TYPE P,
VP_ZCOP(8) DECIMALS 4 TYPE P,
VP_ZPUB(8) DECIMALS 4 TYPE P,
VP_ZCOR(8) DECIMALS 4 TYPE P,
VP_ZCPM(8) DECIMALS 4 TYPE P,
VP_ZJUU(8) DECIMALS 4 TYPE P,
VP_ZSEG(8) DECIMALS 4 TYPE P,
VP_ZPCO(8) DECIMALS 4 TYPE P,
VP_PR00(8) DECIMALS 4 TYPE P,
VP_ICM(8) DECIMALS 4 TYPE P,
VP_IPI(8) DECIMALS 4 TYPE P,
VP_BASE LIKE J_1BTXIC2-BASE,
VP_ICM3 LIKE J_1BTXIC2-RATE,
VP_EXEMPT LIKE J_1BTXIP1-EXEMPT,
VP_EXEMPT2 LIKE J_1BTXIC2-EXEMPT,
VP_BASEIPI LIKE J_1BTXIP2-BASE,
VP_CIPI LIKE J_1BTXIP2-BASE,
VP_NBMCODE LIKE MARC-STEUC,
VP_QTDE(8) DECIMALS 4 TYPE P,
VP_KF00(8) DECIMALS 4 TYPE P,
VP_XICMS(1),
VP_XXIPI(1).
CLEAR: VP_ZCSS, VP_ZPIP, VP_ZCOP, VP_ZPUB, VP_ZCOR, VP_ZCPM, VP_ZJUU,
VP_ZSEG, VP_ZPCO, VP_PR00, VP_ICM3, VP_DATA, VP_ICM, VP_IPI,
VP_NBMCODE, VP_BASEIPI, VP_CIPI, VP_KF00, VP_PR00, VP_BASE,
VP_EXEMPT, VP_EXEMPT2, VP_XICMS, VP_XXIPI.
MOVE XKOMV-STUNR TO VP_STUNR.
READ TABLE XKOMV WITH KEY KSCHL = 'ZCSS'.
IF SY-SUBRC EQ 0.
VP_ZCSS = XKOMV-KBETR * 10.
VP_ZPRO = VP_ZCSS / 12.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZCSR'.
IF SY-SUBRC EQ 0.
VP_ZCSR = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZPIP'.
IF SY-SUBRC EQ 0.
VP_ZPIP = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZCOP'.
IF SY-SUBRC EQ 0.
VP_ZCOP = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZPUB'.
IF SY-SUBRC EQ 0.
VP_ZPUB = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZCOR'.
IF SY-SUBRC EQ 0.
VP_ZCOR = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZCPM'.
IF SY-SUBRC EQ 0.
VP_ZCPM = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZJUU'.
IF SY-SUBRC EQ 0.
VP_ZJUU = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZSEG'.
IF SY-SUBRC EQ 0.
VP_ZSEG = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'ZPCO'.
IF SY-SUBRC EQ 0.
VP_ZPCO = XKOMV-KBETR * 10.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'PR00'.
IF SY-SUBRC EQ 0.
VP_PR00 = XKOMV-KWERT * 100.
ENDIF.
READ TABLE XKOMV WITH KEY KSCHL = 'KF00'.
IF SY-SUBRC EQ 0.
VP_KF00 = XKOMV-KWERT * 100.
ENDIF.
************* CONVERTE A DATA PARA
* O FORMATO DA TABELA ***************
CONCATENATE KOMK-PRSDT+6(2)
KOMK-PRSDT+4(2)
KOMK-PRSDT+0(4) INTO VP_DATA.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = VP_DATA
IMPORTING
OUTPUT = VP_DATA
EXCEPTIONS
OTHERS = 1.
******** VERIFICA SE O CLIENTE NÃO É ISENTO ******************
SELECT SINGLE XICMS XXIPI INTO (VP_XICMS, VP_XXIPI)
FROM KNA1
WHERE KUNNR = KOMK-KUNNR.
* SE O CLIENTE NÃO FOR ISENTO DE ICMS
IF VP_XICMS = ''.
* TESTA SE O CODIGO DO IMPOSTO DIGITADO CALCULA ICMS
IF KOMP-J_1BTXSDC = 'C1' OR KOMP-J_1BTXSDC = 'C2' OR
KOMP-J_1BTXSDC = 'C3' OR KOMP-J_1BTXSDC = 'C4' OR
KOMP-J_1BTXSDC = 'I1' OR KOMP-J_1BTXSDC = 'I2' OR
KOMP-J_1BTXSDC = 'I3' OR KOMP-J_1BTXSDC = 'I4'.
ENDFORM.
Fórmula 2
*---------------------------------------------------------------------*
* FORM FRM_KOND_BASIS_800 - Custo Integrado *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form frm_kond_basis_800.
tables: ztrcustoin.
data: w_taxa1 like tcurr-ukurs.
data: w_taxa2 like tcurr-ukurs.
clear xkomv-kbetr.
select zcpusd into ztrcustoin-zcpusd from ztrcustoin
where zmatnr eq komp-matnr
and zdtini le sy-datum
and zdtfim ge sy-datum
and ztipoc eq 'I'
and zwaers eq 'USD'.
rettxkomv-kbetr = xkomv-kbetr.
rettxkomv-waers = xkomv-waers.
* modify xkomv.
endform.
FÓRMULA 3:
*---------------------------------------------------------------------*
* FORM FRM_KOND_BASIS_801 - Rentabilidade *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form frm_kond_basis_801.
tables: tcurr.
xkomv-kwert = 0.
rettxkomv-kwert = xkomv-kwert.
if vp_custo ne 0.
vp_margem = ( ( vp_venda / vp_custo ) - 1 ) * 100.
else.
vp_margem = 100.
endif.
rettxkomv-kbetr = xkomv-kbetr.
endform.
OUTROS Exemplos:
INCLUDE ZBR_VI_FORM933 *
*&---------------------------------------------------------------------*
*& Formula 933 for SD pricing
*& Calculate insurance value for sales order
*&---------------------------------------------------------------------*
*& DESIGNED BY: Aparecido - 14Nov2003
*& CODED BY : Sidney C. Leite - 14Nov2003
*& LOCATION : Brazil
*& PAD DOC # : 38667
*&---------------------------------------------------------------------*
*& USE: Used in RV64A933 program.
*&---------------------------------------------------------------------*
*& COMMENTS:
*&---------------------------------------------------------------------*
*& MODIFICATION LOG:
*& VSN DATE FULL NAME - Change Request Number
*& v000 Initial Version - 38709
*&
*& v001 08jan04 Rodrigo Ariza Gregorio - PAD/CR
*& I calculate of the sum - 41982/42892
*&
*& v002 23jan04 Rodrigo Ariza Gregorio
*& To include condition ZBFV with the - CR
*& same calculos and details of the ZBFT. - 48314
*&
*& vnnn ddmmmyy x. xxxxxxxxxxxxxxxxxxxxxx - 0000
*& description of change
*&---------------------------------------------------------------------*
CLEAR: zbr_zbbc,
zbr_zbsg,
zbr_zbcf,
zbr_zbft,
zbr_zbfv, "v002
zbr_zbfl, "v002
zbr_xkomv,
zbr_xkomv1. "v001
IF sy-subrc = 0. "v001
zbr_zbbc = zbr_xkomv-kwert. "v001
ENDIF. "v001
IF sy-subrc = 0.
ENDIF.
DE NOVO:
*----------------------------------------------------------------------*
* INCLUDE ZBR_VI_FORM934 *
*&---------------------------------------------------------------------*
*& Formula 934 - Definition of Value FOB
*&
*&---------------------------------------------------------------------*
*& DESIGNED BY: Aparecido Borges - 18Mar2004
*& CODED BY : Rodrigo Ariza Gregorio - 18Mar2004
*& LOCATION : Brazil
*& PAD DOC # : 48318
*&---------------------------------------------------------------------*
*& USE: Used in RV64A934 program.
*&---------------------------------------------------------------------*
*& COMMENTS:
*&---------------------------------------------------------------------*
*& MODIFICATION LOG:
*& VSN DATE FULL NAME - Change Request Number
*& v000 Initial Version - 49953
*&
*& vnnn ddmmmyy x. xxxxxxxxxxxxxxxxxxxxxx - 0000
*& description of change
*&---------------------------------------------------------------------*
CLEAR: zbr_zbvl,
zbr_zbsg,
zbr_zbcf,
zbr_zbft,
zbr_zbfv,
zbr_zbfl,
zbr_xkomv.
INCLUDE y_gethard.
zbr_konda = komk-konda.
zbr_inco1 = komk-inco1.
IF sy-subrc = 0.
zbr_zbvl = zbr_xkomv-kwert.
ENDIF.
z_xkomv[] = xkomv[].
IF sy-subrc = 0.
LOOP AT zbr_char20.
t_hardcode-sign = zbr_char20-sign.
t_hardcode-option = zbr_char20-option.
t_hardcode-preco = zbr_char20-low(3).
t_hardcode-cond = zbr_char20-low+4(2).
t_hardcode-val = zbr_char20-low+7(1).
APPEND t_hardcode.
ENDLOOP.
CLEAR: t_hardcode.
IF t_hardcode-val EQ '1'.
xkwert = zbr_zbvl.
ELSEIF t_hardcode-val EQ '2'.
xkwert = zbr_zbvl - zbr_zbsg - zbr_zbft - zbr_zbfl - zbr_zbfv.
ENDIF.
EXIT.
ENDLOOP.
ENDIF.
ENDIF.