CE PLUS - Nota 009136

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Associação

Data/Hora da Publicação: 02/10/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 10:50:54

Descrição da Nota: ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)

Sintoma

Ao efetuar uma associação parcial e depois efetuar uma nova parcial, onde o cenário é com item de

pedido(/pws/zycmt020), a segunda associação gera erro no desmembramento do pagamento

antecipado/financiamento/pagamento de fatura, levando valor zero(0,00) para o batch-input.

 

 

Solução

Atualizar o campo /PWS/ZYCMT020-SALDO com o valor correto(total ou parcial) e efetuar essa

atualização apenas após o sucesso na última contabilização da associação.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ASSOCIAÇÃO DE FATURAS - ATUALIZAÇÃO INCORRETA DATA E DOCTO DE ASSOCIAÇÃO

ASSOCIAÇÃO DE FATURAS - DA RATEIO POR ITEM DOC. COMPRA

ASSOCIAÇÃO PAGAMENTO ANTECIPADO IMPORTAÇÃO

Informações Complementares

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

Nota Número 09136 Data: 02/10/2009 Hora: 16:28:35

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

 

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

Nota Número              : 09136

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

01988  - 00001 - 6.0    - 00024  - ASSOCIAÇÃO DE FATURAS - DA RATEIO POR ITEM DOC. COMPRA

04588  - 00002 - 7.0    - 00002  - ASSOCIAÇÃO DE FATURAS - ATUALIZAÇÃO INCORRETA DATA E DOCTO DE ASS

08355  - 00003 - 7.0    - 00009  - ASSOCIAÇÃO PAGAMENTO ANTECIPADO IMPORTAÇÃO

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

ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)

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

Palavras Chave:

ASSOCIAÇÃO DE FATURAS - ERRO DESMEMBRAMENTO COM VALOR ZERO(0,00)

 

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

Objetos da nota:

REPS /PWS/LZYCMGF2F01

 

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

Modificações efetuadas em REPS /PWS/LZYCMGF2F01

 

...

      clear v_sucesso.

    else.

      v_sucesso = 'X'.

      if v_erro_estorno is initial.

        modify /pws/zycbt131 from table itab_zycbt131.

        modify /pws/zycbt108 from table itab_zycbt108.

        update /pws/zycbt112 set   slassoc = /pws/zycbe112-slassoc

                               belnr2 = /pws/zycbe112-belnr2

                               fassoc = 'X'

                        where   nrseq = /pws/zycbe112-nrseq.

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

        loop at itab_zycmt020.

          update /pws/zycmt020 set saldo = itab_zycmt020-saldo

                               where nrseq  = itab_zycmt020-nrseq

                                 and codmod = itab_zycmt020-codmod

                                 and ebeln  = itab_zycmt020-ebeln

                                 and ebelp  = itab_zycmt020-ebelp.

        endloop.

* << Fim da exclusão

        loop at itab_zycbt108 where belnr_lq ne '          '.

          read table itab_zycbt131 with key

                                nrseq_pgfat = itab_zycbt108-nrseq_pgfat.

          if itab_zycbt108-slfat eq 0.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

                                 belnr_p = itab_zycbt131-belnr_as

                                 dtpagto = sy-datum

                          where  nrseq   = itab_zycbt108-nrseq_pgfat.

          else.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

...

 

...

      clear v_erro_inclusao.

      clear v_sucesso.

    else.

      v_sucesso = 'X'.

      if v_erro_estorno is initial.

        modify /pws/zycbt131 from table itab_zycbt131.

        modify /pws/zycbt108 from table itab_zycbt108.

        update /pws/zycbt117 set   slpgant = /pws/zycbe117-slpgant

                               belnr2 = /pws/zycbe117-belnr2

                        where   nrseq = /pws/zycbe117-nrseq.

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

        loop at itab_zycmt020.

          update /pws/zycmt020 set saldo = itab_zycmt020-saldo

                               where nrseq  = itab_zycmt020-nrseq

                                 and codmod = itab_zycmt020-codmod

                                 and ebeln  = itab_zycmt020-ebeln

                                 and ebelp  = itab_zycmt020-ebelp.

        endloop.

* << Fim da exclusão

        loop at itab_zycbt108 where belnr_lq ne '          '.

          if itab_zycbt108-slfat eq 0.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

                                 belnr_p = itab_zycbt131-belnr_as

                                 dtpagto = sy-datum

                          where  nrseq   = itab_zycbt108-nrseq_pgfat.

          else.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

                                 belnr_p = itab_zycbt108-belnr_lq

                          where  nrseq   = itab_zycbt108-nrseq_pgfat.

...

 

...

    delete itab_zycbt131 where vlme eq ' '.

    if v_erro_inclusao eq 'X'.

      clear v_erro_inclusao.

      clear v_sucesso.

    else.

      v_sucesso = 'X'.

      if v_erro_estorno is initial.

        modify /pws/zycbt131 from table itab_zycbt131.

        modify /pws/zycbt108 from table itab_zycbt108.

        modify /pws/zycbt119 from /pws/zycbe119.

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

        loop at itab_zycmt020.

          update /pws/zycmt020 set saldo = itab_zycmt020-saldo

                               where nrseq  = itab_zycmt020-nrseq

                                 and codmod = itab_zycmt020-codmod

                                 and ebeln  = itab_zycmt020-ebeln

                                 and ebelp  = itab_zycmt020-ebelp.

        endloop.

* << Fim da exclusão

        loop at itab_zycbt108 where belnr_lq ne '          '.

          if itab_zycbt108-slfat eq 0.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

                                 belnr_p = itab_zycbt131-belnr_as

                                 dtpagto = sy-datum

                          where  nrseq   = itab_zycbt108-nrseq_pgfat.

          else.

            update /pws/zycbt119 set  slpgfat = itab_zycbt108-slfat

                                 belnr_p = itab_zycbt108-belnr_lq

                          where  nrseq   = itab_zycbt108-nrseq_pgfat.

...

 

...

    select zuonr from bseg

                   up to 1 rows

                        into v_zuonr_fi

                        where bukrs eq /pws/zycbe117-bukrs

                          and belnr eq itab_zycbt036-belnr

                          and gjahr eq v_gjahr

                          and augbl eq ' '

                          and koart eq 'K'

                          and bschl eq '29'.

    endselect.

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

    loop at itab_zycmt020.

      itab_zycmt020-vlassoc = itab_zycmt020-saldo.

      itab_zycmt020-saldo   = space.

      modify itab_zycmt020.

    endloop.

* << Fim da inclusão

    v_ok = 'X'.

    exit.

  endif.

  itab_zycbe033-xblnr = /pws/zycbe117-nrseq.

  concatenate /pws/zycbe117-nrseq 'A' into itab_zycbe033-d_zuonr.

  v_zuonr_fi = itab_zycbe033-d_zuonr.

  itab_zycbe033-c_zuonr = /pws/zycbe117-nrseq.

  if /pws/zycbe112-ftxt is initial.

    itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

    itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

...

 

...

        itab_zycbt131-belnr_as = itab_zycbt032-belnr.

        modify itab_zycbt131 transporting belnr_as

                            where belnr eq itab_zycbt108-belnr

                         and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat.

        if ( /pws/zyglt009-contpa = 'Y' and

             /pws/zycbe117-codint = 'IM' ) or

           ( /pws/zyglt009-contpa = 'Y' and

             /pws/zycbe117-codint = 'ES' and v_trans is initial ).

          /pws/zycbe117-slpgant = v_saldo_pa.

        endif.

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

        loop at itab_zycmt020.

          itab_zycmt020-vlassoc = itab_zycmt020-saldo.

          itab_zycmt020-saldo   = space.

          modify itab_zycmt020.

        endloop.

* << Fim da exclusão

        perform atualiza_dados_processos.

      else.

        loop at itab_zycbt032.

           perform message_store using

                   '/PWS/ZYCBM'

                   'E'

                   itab_zycbt032-msg+0(50)

                   itab_zycbt032-msg+50(50)

                   space

                   space

...

 

...

                'I'

                itab_zycbt032-msg

                space

                space

                space

                '015'.

        itab_zycbt131-belnr_as = itab_zycbt032-belnr.

        modify itab_zycbt131 transporting belnr_as

                            where belnr eq itab_zycbt108-belnr

                         and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat.

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

        loop at itab_zycmt020.

          itab_zycmt020-vlassoc = itab_zycmt020-saldo.

          itab_zycmt020-saldo   = space.

          modify itab_zycmt020.

        endloop.

* << Fim da exclusão

        perform atualiza_dados_processos.

      else.

        loop at itab_zycbt032.

           perform message_store using

                   '/PWS/ZYCBM'

                   'E'

                   itab_zycbt032-msg+0(50)

                   itab_zycbt032-msg+50(50)

                   space

                   space

...

 

...

                               dtassoc  = v_dtdocto

                         where nrseq    eq /pws/zycbe119-nrseq.

  endif.

  if v_fat_cont is initial.

    update /pws/zycbt108 set   dtassoc     = v_dtdocto2

                               belnr_as    = v_belnr_as2

                               belnr_lq    = v_belnr_as2

       where belnr       eq itab_zycbt108-belnr

         and nrseq_pgfat eq itab_zycbt108-nrseq_pgfat.  "#EC CI_NOFIRST

  endif.

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

  loop at itab_zycmt020.

    update /pws/zycmt020 set saldo = itab_zycmt020-saldo

                         where nrseq  = itab_zycmt020-nrseq

                           and codmod = itab_zycmt020-codmod

                           and ebeln  = itab_zycmt020-ebeln

                           and ebelp  = itab_zycmt020-ebelp.

  endloop.

* << Fim da inclusão

endform.

form determina_periodo using    value(p_data)

                                value(p_bukrs)

                       changing p_periodo.

  data v_periv(2).

  select single periv

    from t001

    into v_periv

    where bukrs eq p_bukrs.

  call function 'DETERMINE_PERIOD'

...