CE PLUS - Nota 008467

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 29/05/2009 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:04:31

Descrição da Nota: DUMP DE OVERFLOW AO TENTAR CRIAR A DI

Sintoma

Ao  tentar criar a DI para itens com quantidade a partir de 1.000.000 ocorre dump por Overflow.

 

 

Solução

Ajustado tratamento de casas decimais para utilizar campo com tamanho maior para não ocorrer o DUMP.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DUMP DE DIVISÃO POR ZERO NA CRIAÇÃO DA DI.

AO SALVAR DI, MUDA RATEIO DE VALORES DE DESPESA, ALTERANDO OS IMPOSTOS.

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 08467 Data: 29/05/2009 Hora: 11:48:23

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 08467

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00099

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

08288  - 00001 - 7.0    - 00009  - DUMP DE DIVISÃO POR ZERO NA CRIAÇÃO DA DI.

08456  - 00001 - 7.0    - 00009  - AO SALVAR DI, MUDA RATEIO DE VALORES DE DESPESA, ALTERANDO OS IMP

----------------------------------------------------------------------------------------------------

DUMP DE OVERFLOW AO TENTAR CRIAR A DI

----------------------------------------------------------------------------------------------------

Palavras Chave:

DUMP - OVERFLOW - DI - CRIAR

/PWS/SAPMZYCI023

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI023F01

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

FORM load_ifre USING p_tipo.

* >> Início da inclusão: FORM LOAD_IFRE

  DATA: v_decim1 TYPE /pws/zycit245-qtd_tot,

        v_decim2 TYPE /pws/zycit245-qtd_tot.

* << Fim da inclusão

...

 

...

                                   ebelp = /pws/zycie003-ebelp.

  IF sy-subrc NE 0.

    SELECT SINGLE qtd_iten ntgewd FROM /pws/zycit003 INTO

  (/pws/zycie003-qtd_iten, /pws/zycie003-ntgewd)

       WHERE nrseq EQ /pws/zycie003-nrseq

       AND   ebeln EQ /pws/zycie003-ebeln

       AND   ebelp EQ /pws/zycie003-ebelp.

  ELSE.

    /pws/zycie003-qtd_iten = wa_zycit003-qtd_iten.

    /pws/zycie003-ntgewd   = wa_zycit003-ntgewd  .

  ENDIF.

  v_vlreal  = /pws/zycie003-vlreal.

* >> Início da exclusão: FORM LOAD_IFRE

  v_qtd_c3 = /pws/zycie003-qtd_iten * 10000.

  v_qtd_dc3 = /pws/zycie003-qtd_itend * 10000.

  v_qtd_c3 = trunc( v_qtd_c3 ) / 10000.

  v_qtd_dc3 = trunc( v_qtd_dc3 ) / 10000.

* << Fim da exclusão

* >> Início da inclusão: FORM LOAD_IFRE

  v_decim1 = /pws/zycie003-qtd_iten * 10000.

  v_decim2 = /pws/zycie003-qtd_itend * 10000.

  v_qtd_c3 =  trunc( v_decim1 ) / 10000.

  v_qtd_dc3 = trunc( v_decim2 ) / 10000.

* << Fim da inclusão

  IF NOT /pws/zycie003-qtd_itend IS INITIAL.

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal *

                                      v_qtd_dc3.

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_dc3.

  ELSE.

    t_vmle3 = t_vmle_d2 = t_vmle  = v_vlreal * v_qtd_c3.

    t_vmle2 = /pws/zycie003-vlreal *  v_qtd_c3.

  ENDIF.

  v_it_plan = /pws/zycie003-netpr * v_qtd_c3.

  v_frete_nm  = v_bltofat.

...

 

...

FORM fill_itabit.

* >> Início da inclusão: FORM FILL_ITABIT

  DATA: v_decim1 TYPE /pws/zycit245-qtd_tot,

        v_decim2 TYPE /pws/zycit245-qtd_tot.

* << Fim da inclusão

...

 

...

      WHERE pais EQ 'BR'.

  ENDIF.

  IF /pws/zycie085-j_1bbranch IS INITIAL.

    READ TABLE itab_zycit001 INDEX 1.

    /pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.

  ENDIF.

  PERFORM find_region.

  /pws/zycie085-mdadicao = 'S'.

  CLEAR: v_tntgew, v_tval, v_tmle, v_waers, v_tsegfat.

  LOOP AT itab_zycit003.

* >> Início da exclusão: FORM FILL_ITABIT

    itab_zycit003-qtd_itendc3 = itab_zycit003-qtd_itend

                                               * 10000.

    itab_zycit003-qtd_itenc3 = itab_zycit003-qtd_iten

                                               * 10000.

    itab_zycit003-qtd_itendc3 =

            trunc( itab_zycit003-qtd_itendc3 ) / 10000.

    itab_zycit003-qtd_itenc3  =

            trunc( itab_zycit003-qtd_itenc3 )  / 10000.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_ITABIT

    v_decim1 = itab_zycit003-qtd_itend * 10000.

    v_decim2 = itab_zycit003-qtd_iten * 10000.

    itab_zycit003-qtd_itendc3 = trunc( v_decim1 ) / 10000.

    itab_zycit003-qtd_itenc3  = trunc( v_decim2 ) / 10000.

* << Fim da inclusão

    MODIFY itab_zycit003 .

    READ TABLE itab_zycit013 WITH KEY

         ebeln = itab_zycit003-ebeln

         ebelp = itab_zycit003-ebelp.

    MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,

          itab_zycit013-uebto  TO itab_zycit003-uebto,

          itab_zycit013-uebtk  TO itab_zycit003-uebtk,

          'X'                  TO itab_zycit003-noinitial.

    CLEAR itab_it.

    READ TABLE itab_it WITH KEY

...