Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 30/12/2008 00:00:00
Data/Hora Última Alteração: 09/03/2010 16:13:48
Descrição da Nota: DUMP DE DIVISÃO POR ZERO QUANDO O PESO NÃO ESTÁ PREENCHIDO.
Sintoma
Está ocorrendo DUMP de divisão por zero na DI.
Solução
Realizado ajuste na DI para não efetuar divisão quando o peso estiver em branco.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07854 Data: 30/12/2008 Hora: 15:14:45
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07854
Categoria : Consultoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00059
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
Texto Rápido:
DUMP DE DIVISÃO POR ZERO QUANDO O PESO NÃO ESTÁ PREENCHIDO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
DUMP - DIVISÃO - ZERO - PESO - ITEM - DI
/PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F04
REPS /PWS/MZYCI023O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
v_ternacion = /pws/zycie093-ternacion.
PERFORM trata_decimais USING /pws/zycie085-waersfre
v_ternacion .
IF /pws/zycie085-waersfob NE /pws/zycie093-waersfre .
PERFORM: calc_conv_moeda:
USING /pws/zycie093-waersfre
/pws/zycie085-waersfob
CHANGING v_ternacion.
ENDIF.
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
* >> Início da inclusão: FORM LOAD_IFRE
IF NOT v_ntgewd IS INITIAL.
* << Fim da inclusão
v_diftern = ( ( /pws/zycie003-ntgewd / v_ntgewd )
* v_ternacion ).
* >> Início da inclusão: FORM LOAD_IFRE
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM LOAD_IFRE
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
v_diftern = ( ( /pws/zycie003-ntgew / v_tntgew )
* v_ternacion ).
* >> Início da inclusão: FORM LOAD_IFRE
ENDIF.
* << Fim da inclusão
ENDIF.
t_vmle = t_vmle - v_diftern .
ENDIF.
ENDIF.
IF itab_zycit003-qtd_itend IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + t_vldif.
ENDIF.
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
ENDFORM.
...
...
DATA: v_casasd TYPE /pws/zycit036-vlreal,
v_casasd2 TYPE /pws/zycit036-vlreal,
v_casasd3 TYPE /pws/zycit036-vlreal.
CLEAR: t_ivdesp.
LOOP AT itab_zycit049 WHERE baseii EQ 'X' AND NOT vlreal IS initial.
IF /pws/zycit000-flag_txsisc IS INITIAL OR
wa_it000-cod_sisc NE itab_zycit049-tpdesp.
IF itab_zycit049-divabs = 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso = 'X'.
* >> Início da inclusão: FORM LOAD_ITAX
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) *
itab_zycit049-vlreal.
* >> Início da inclusão: FORM LOAD_ITAX
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan = 'X'.
IF NOT v_tot_plan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
...
...
PERFORM calc_itab_vals USING 'I'.
s_wadreco = s_waddevi = s_waddevi + ( itab_it-baseantid *
( itab_it-antidrate / 100 ) ) + ( itab_it-vlantid *
itab_it-qtdeantid ).
itab_it-vlfre_me = v_tot_fre.
itab_it-vlseg_me = v_tot_seg.
itab_it-vlfre = t_ivfre.
itab_it-vlseg = t_ivseg.
itab_it-vldiffob = t_vldif.
IF NOT /pws/zycie093-ternacion IS INITIAL.
* >> Início da inclusão: FORM CALC_ITAB
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
IF NOT itab_it-qtd_itend IS INITIAL.
itab_it-frn = ( /pws/zycie003-ntgewd / v_tntgew ) *
/pws/zycie093-ternacion.
ELSE.
itab_it-frn = ( /pws/zycie003-ntgew / v_tntgew ) *
/pws/zycie093-ternacion.
* >> Início da inclusão: FORM CALC_ITAB
ENDIF.
* << Fim da inclusão
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
CLEAR : v_fatx, v_xa , v_xb , v_xc, v_faty, v_fatpc.
LOOP AT itab_zycit049 WHERE baseicms EQ 'X' AND NOT vlreal IS initial.
CLEAR t_ivdes2.
IF /pws/zycit000-flag_txsisc IS INITIAL OR v_dit NE 'N' OR
wa_it000-cod_sisc NE itab_zycit049-tpdesp.
IF NOT itab_zycit049-tipo EQ 'D' OR
itab_zycit049-tpdesp = /pws/zycit000-flagfreten.
IF itab_zycit049-divabs EQ 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso EQ 'X'.
* >> Início da inclusão: FORM LOAD_IICMS
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vlreal.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan EQ 'X'.
IF NOT v_tot_plan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
LOOP AT itab_zycit049 WHERE tipo EQ 'A' AND NOT vlreal IS initial.
IF itab_zycit049-baseicms EQ 'X'.
IF /pws/zycit000-flag_txsisc IS INITIAL OR
wa_it000-cod_sisc NE itab_zycit049-tpdesp.
IF v_idx EQ v_ipt AND v_ipt NE 1.
t_vmle = t_vmle + ( itab_zycit049-vlreal - v_vldp_aux ) .
ELSE.
IF itab_zycit049-divabs EQ 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso EQ 'X'.
* >> Início da inclusão: FORM DESPESA_ACRESCIMO
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vlreal.
* >> Início da inclusão: FORM DESPESA_ACRESCIMO
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan EQ 'X'.
t_ivdes2 = ( v_it_plan / v_tot_plan ) *
itab_zycit049-vlreal.
ELSE.
IF /pws/zycit062-bs_rat_icms EQ 'CIF'.
t_ivdes2 = ( itab_zycit049-vlreal *
...
...
ENDIF.
t_vmle = t_vmle + t_ivdes2.
v_vldp_aux = v_vldp_aux + t_ivdes2.
ELSE.
IF v_idx EQ v_ipt AND v_ipt NE 1.
t_vmle = t_vmle + ( itab_zycit049-vlreal - v_vldp_aux ) .
ELSE.
IF itab_zycit049-divabs = 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso = 'X'.
* >> Início da inclusão: FORM DESPESA_ACRESCIMO
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) *
itab_zycit049-vlreal.
* >> Início da inclusão: FORM DESPESA_ACRESCIMO
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan = 'X'.
t_ivdes2 = ( v_it_plan / v_tot_plan )
* itab_zycit049-vlreal.
ELSE.
t_ivdes2 = ( v_it_plan / v_tot_plan )
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023O01
...
IF NOT itab_zycit049-vldp IS INITIAL.
IF v_adics EQ '1'.
v_wa_it122-vldp = v_wa_it122-vldp + itab_zycit049-vldp.
v_wa_it122-vlreal = v_wa_it122-vlreal + itab_zycit049-vlreal.
ELSE.
IF itab_zycit049-peso EQ 'X'.
CLEAR : wa_it122-vldp, wa_it122-vlreal, v_ntgew_adic.
LOOP AT itab_it WHERE adicao = wa_it-adicao.
v_ntgew_adic = v_ntgew_adic + itab_it-ntgew.
ENDLOOP.
* >> Início da inclusão: MODULE FILL_STRUCT049B
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
v_wa_it122-vldp = v_wa_it122-vldp +
( v_ntgew_adic / v_tntgew ) *
itab_zycit049-vldp.
v_wa_it122-vlreal = v_wa_it122-vlreal +
( v_ntgew_adic / v_tntgew ) *
itab_zycit049-vlreal.
* >> Início da inclusão: MODULE FILL_STRUCT049B
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan = 'X'.
...
...
IF NOT itab_zycit049-vldp IS INITIAL.
IF v_adics EQ '1'.
v_wa_it123-vldp = v_wa_it123-vldp + itab_zycit049-vldp.
v_wa_it123-vlreal = v_wa_it123-vlreal + itab_zycit049-vlreal.
ELSE.
IF itab_zycit049-peso EQ 'X'.
CLEAR: wa_it123-vldp, wa_it123-vlreal, v_ntgew_adic.
LOOP AT itab_it WHERE adicao = wa_it-adicao.
v_ntgew_adic = v_ntgew_adic + itab_it-ntgew.
ENDLOOP.
* >> Início da inclusão: MODULE FILL_STRUCT049C
IF NOT v_tntgew IS INITIAL.
* << Fim da inclusão
v_wa_it123-vldp = v_wa_it123-vldp +
( v_ntgew_adic / v_tntgew ) *
itab_zycit049-vldp.
v_wa_it123-vlreal = v_wa_it123-vlreal +
( v_ntgew_adic / v_tntgew ) *
itab_zycit049-vlreal.
* >> Início da inclusão: MODULE FILL_STRUCT049C
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit049-proporplan = 'X'.
...