CE PLUS - Nota 008692

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 17/07/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:57:09

Descrição da Nota: VINCULAÇÃO/LIQUIDAÇÃO - CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO

Sintoma

Cenário: DP ou CP com liquidação automática: contrato de 2008, vinculado 1 vez em 2008 com fatura de

2008. OK. Nova vinculação em 2009 com outra fatura de 2008, só que com erro. Neste momento do erro,

grava os dados na tabela /pws/zycbt005 e grava o campo /pws/zycbt001-dtvincul com a data de 2009

(nova vinculação), mas exibe erro ao tentar fazer próximas vinculações sendo: documento já

compensado e chave de referência no desmembramento do contrato.

 

 

Solução

Verificar a última vinculação válida na /pws/zycbt005, onde se a data encontrada for menor que a

/pws/zycbt001-dtvincul, considerar a data da /pws/zycbt005.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÃO-LIQUIDAÇÃO-IDIOMA 166/167/168/169-ERRO DATA BASE

DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFORMANCE

LIQUIDAÇÃO - DATA LANÇAMENTO INCORRETO NO BATCH INPUT

Informações Complementares

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

Nota Número 08692 Data: 17/07/2009 Hora: 09:58:27

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

 

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

Nota Número              : 08692

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00010

Agrupamento              : 00105

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

Referência às notas relacionadas:

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

 

07760  - 00001 - 7.0    - 00007  - DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFO

08619  - 00002 - 7.0    - 00010  - VINCULAÇÃO - LIQUIDAÇÃO - PARÂMETROS NO IDIOMA - 166/167/168/169

08630  - 00003 - 7.0    - 00010  - LIQUIDAÇÃO - DATA LANÇAMENTO INCORRETO NO BATCH INPUT

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

VINCULAÇÃO/LIQUIDAÇÃO - CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO

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

Palavras Chave:

VINCULAÇÃO LIQUIDAÇÃO CHAVE REFERÊNCIA E DATA LANÇAMENTO CONTRATO

 

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

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB004TOP

REPS /PWS/MZYCB009F04

REPS /PWS/MZYCB009TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

          when 'D'.

            v_data = /pws/zycbe001-dtdesem.

          when others.

            v_data = /pws/zycbe001-dtcred.

        endcase.

        itab_zycbe033-belnr   = /pws/zycbe001-belnr.

        itab_zycbe033-dtdocto = v_data.

      else.

        itab_zycbe033-belnr   = /pws/zycbe001-belnr2.

        itab_zycbe033-dtdocto = /pws/zycbe001-dtvincul.

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

        if ( /pws/zycbe001-tpcontr(1)  eq 'D'   and

             /pws/zycbt089-f_cont_vinc eq 'F' ) or

           ( /pws/zycbe001-tpcontr(1)  eq 'C'   and

             wa_zycbt007-liq_cp        eq 'X' ).

          select * from /pws/zycbt005 into table itab_zycbt005_vinc

                   where nrseqc = /pws/zycbe001-nrseqc

                     and status = 'C'.

          describe table itab_zycbt005_vinc lines v_linha.

          while v_linha > 0.

            read table itab_zycbt005_vinc index v_linha.

            if sy-subrc = 0

               and

               itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

               and

               itab_zycbt005_vinc-dtvincul < /pws/zycbe001-dtvincul.

              itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.

              exit.

            else.

              v_linha = v_linha - 1.

            endif.

          endwhile.

        endif.

* << Fim da inclusão

      endif.

    else.

      if itab_zycbt005-belnr is initial.

        itab_zycbe033-belnr  = itab_zycbt005-belnr_vinc.

      else.

        itab_zycbe033-belnr  = itab_zycbt005-belnr.

      endif.

      itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.

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

      if ( /pws/zycbe001-tpcontr(1)  eq 'D'   and

           /pws/zycbt089-f_cont_vinc eq 'F' ) or

         ( /pws/zycbe001-tpcontr(1)  eq 'C'   and

           wa_zycbt007-liq_cp        eq 'X' ).

        select * from /pws/zycbt005 into table itab_zycbt005_vinc

                 where nrseqc = /pws/zycbe001-nrseqc

                   and status = 'C'.

        describe table itab_zycbt005_vinc lines v_linha.

        while v_linha > 0.

          read table itab_zycbt005_vinc index v_linha.

          if sy-subrc = 0

             and

             itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

             and

             itab_zycbt005_vinc-dtvincul < itab_zycbt005-dtbelnr.

            itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.

            exit.

          else.

            v_linha = v_linha - 1.

          endif.

        endwhile.

      endif.

* << Fim da inclusão

    endif.

  endif.

  itab_zycbt036-tcode   = 'F-30'.

  itab_zycbt036-tabela  = '/PWS/ZYCBT006'.

  itab_zycbt036-cpochv  = v_cpochv.

  perform determina_fator using v_parafator

                                v_defator.

  select *

         up to 1 rows

         from tcurx

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

        itab_zycbe033-belnr   = v_zycbe001-belnr.

        itab_zycbe033-dtdocto = v_data.

      else.

        itab_zycbe033-belnr   = v_zycbe001-belnr2.

        select single * from /pws/zycbt074

          where nrseqc = v_zycbe001-nrseqc.

        if not /pws/zycbt074-dtcont is initial.

          itab_zycbe033-dtdocto = /pws/zycbt074-dtcont.

        else.

          itab_zycbe033-dtdocto = v_zycbe001-dtvincul.

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

          if ( /pws/zycbe001-tpcontr(1)  eq 'D'   and

               /pws/zycbt089-f_cont_vinc eq 'F' ) or

             ( /pws/zycbe001-tpcontr(1)  eq 'C'   and

               wa_zycbt007-liq_cp        eq 'X' ).

            select * from /pws/zycbt005 into table itab_zycbt005_vinc

                     where nrseqc = /pws/zycbe001-nrseqc

                       and status = 'C'.

            describe table itab_zycbt005_vinc lines v_linha.

            while v_linha > 0.

              read table itab_zycbt005_vinc index v_linha.

              if sy-subrc = 0

                 and

                 itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

                 and

                 itab_zycbt005_vinc-dtvincul < v_zycbe001-dtvincul.

                itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.

                exit.

              else.

                v_linha = v_linha - 1.

              endif.

            endwhile.

          endif.

* << Fim da inclusão

        endif.

      endif.

    else.

      itab_zycbe033-belnr   = itab_zycbt006-belnr5.

      itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.

      if /pws/zycbe001-belnr = itab_zycbt005-belnr.

        case /pws/zycbe001-fdtlanc.

          when 'O'.

            itab_zycbe033-dtdocto = /pws/zycbe001-dtcontr.

          when 'D'.

            itab_zycbe033-dtdocto = /pws/zycbe001-dtdesem.

          when others.

            itab_zycbe033-dtdocto = /pws/zycbe001-dtcred.

        endcase.

      elseif itab_zycbt006-belnr5 = itab_zycbt005-belnr.

          itab_zycbe033-dtdocto = itab_zycbt005-dtvincul.

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

        if ( /pws/zycbe001-tpcontr(1)  eq 'D'   and

             /pws/zycbt089-f_cont_vinc eq 'F' ) or

           ( /pws/zycbe001-tpcontr(1)  eq 'C'   and

             wa_zycbt007-liq_cp        eq 'X' ).

          select * from /pws/zycbt005 into table itab_zycbt005_vinc

                   where nrseqc = /pws/zycbe001-nrseqc

                     and status = 'C'.

          describe table itab_zycbt005_vinc lines v_linha.

          while v_linha > 0.

            read table itab_zycbt005_vinc index v_linha.

            if sy-subrc = 0

               and

               itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

               and

               itab_zycbt005_vinc-dtvincul < itab_zycbt005-dtvincul.

              itab_zycbe033-dtdocto = itab_zycbt005_vinc-dtvincul.

              exit.

            else.

              v_linha = v_linha - 1.

            endif.

          endwhile.

        endif.

* << Fim da inclusão

      endif.

    endif.

  endif.

  itab_zycbt036-tcode   = 'F-30'.

  itab_zycbt036-tabela  = 'ZYCBT006'.

  itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

  if itab_zycbt006-v_armda is initial.

    itab_zycbt036-residuo = itab_zycbt006-vlme.

  else.

    read table itab_paridade with key nrinvoic = itab_zycbt006-nrinvoic

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

            <fs_dtdocto> = /pws/zycbe001-dtdesem.

          when others.

            <fs_dtdocto> = /pws/zycbe001-dtcred.

        endcase.

      endif.

    when others.

      assign:

        p_vinculacao-belnr    to <fs_belnr>,

        p_vinculacao-dtbelnr  to <fs_dtdocto>.

  endcase.

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

  IF ( /pws/zycbe001-tpcontr(1)  EQ 'D'   AND

       /pws/zycbt089-f_cont_vinc EQ 'F' ) OR

     ( /pws/zycbe001-tpcontr(1)  EQ 'C'   AND

       wa_zycbt007-liq_cp        EQ 'X' ).

    SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005_vinc

             WHERE nrseqc = /pws/zycbe001-nrseqc

               AND status = 'C'.

    DESCRIBE TABLE itab_zycbt005_vinc LINES v_linha.

    WHILE v_linha > 0.

      READ TABLE itab_zycbt005_vinc INDEX v_linha.

      IF sy-subrc = 0

         AND

         itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

         AND

         itab_zycbt005_vinc-dtvincul < <fs_dtdocto>.

        ASSIGN itab_zycbt005_vinc-dtvincul TO <fs_dtdocto>.

        EXIT.

      ELSE.

        v_linha = v_linha - 1.

      ENDIF.

    ENDWHILE.

  ENDIF.

* << Fim da inclusão

  perform adiciona_documentos

    using

      p_vinculacao-bukrs_c

      <fs_belnr>

      <fs_dtdocto>

      'H'.

endform.

form seleciona_fatura

  using

    p_itab_vinculacao type t_itab_vinculacao

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004TOP

 

...

   v_ult               type c.

data: icc_             type c,

      conta_           like /pws/zycbt012-saknr1,

      belnr_           like /pws/zycbt030-belnr,

      v_exec(1)        type c.

data: v_vljur_acc      like /pws/zycbt002-vlme,

      v_vljur_ace      like /pws/zycbt002-vlme,

      v_zycbe005       like /pws/zycbe005,

      v_calcula_juros  type c,

      v_agkon          type knb1-kunnr.

* >> Início da inclusão:

data: begin of itab_zycbt005_vinc occurs 0.

        include structure /pws/zycbt005.

data: end of itab_zycbt005_vinc.

* << Fim da inclusão

data: v_nome_campo(35) type c,

      v_comp(35)       type c,

      v_cod_grupo      like /pws/zyglt320-cod_grupo,

      wa_zycbe006_aux  like /pws/zycbe006,

      cont             type i value 0.

data: v_parid          like /pws/zycbt005-parid,

      v_vlme_c         like /pws/zycbt005-vlvinc,

      v_waers_c        like /pws/zycbt005-waers_c,

      v_subrc          like sy-subrc,

      v_cont_ok,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F04

 

...

        WHEN 'O'.

          ASSIGN /pws/zycbe001-dtcontr TO <fs_dtdocto>.

        WHEN OTHERS.

          ASSIGN /pws/zycbe001-dtcred TO <fs_dtdocto>.

      ENDCASE.

    ELSE.

      ASSIGN v_dtcont TO <fs_dtdocto>.

    ENDIF.

  ELSE.

    ASSIGN /pws/zycbe001-dtvincul TO <fs_dtdocto>.

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

    IF ( /pws/zycbe001-tpcontr(1)  EQ 'D'   AND

         /pws/zycbt089-f_cont_vinc EQ 'F' ) OR

       ( /pws/zycbe001-tpcontr(1)  EQ 'C'   AND

         wa_zycbt007-liq_cp        EQ 'X' ).

      SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005_vinc

               WHERE nrseqc = /pws/zycbe001-nrseqc

                 AND status = 'C'.

      DESCRIBE TABLE itab_zycbt005_vinc LINES v_line.

      WHILE v_line > 0.

        READ TABLE itab_zycbt005_vinc INDEX v_line.

        IF sy-subrc = 0

           AND

           itab_zycbt005_vinc-slpagar < itab_zycbt005_vinc-vlvinc

           AND

           itab_zycbt005_vinc-dtvincul < /pws/zycbe001-dtvincul.

          ASSIGN itab_zycbt005_vinc-dtvincul TO <fs_dtdocto>.

          EXIT.

        ELSE.

          v_line = v_line - 1.

        ENDIF.

      ENDWHILE.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  PERFORM adiciona_documentos

    USING

      /pws/zycbe001-bukrs

      <fs_belnr>

      <fs_dtdocto>

      'H'.

ENDFORM.

FORM documentos_principal.

  FIELD-SYMBOLS:

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

       v_zycbe050_vldev   LIKE  /pws/zycbe050-vldev,

       v_belnr_comp       LIKE /pws/zycbe033-belnr,

       v_vlliq          LIKE /pws/zycbt006-vlme,

       v_saldo_fat      LIKE /pws/zycbt006-vlme,

       v_nome_campo(35)   TYPE c,

       v_comp(35)         TYPE c,

       v_cod_grupo        LIKE /pws/zyglt320-cod_grupo,

       cont               TYPE i VALUE 0,

       reg                LIKE sy-tabix,

       v_vert(1)          TYPE c.

* >> Início da inclusão:

data: begin of itab_zycbt005_vinc occurs 0.

        include structure /pws/zycbt005.

data: end of itab_zycbt005_vinc.

* << Fim da inclusão

 DATA:

   v_belnr_f_22    LIKE /pws/zycbt051-belnr_rd,

   v_dtcont        LIKE sy-datum,

   v_dt_f_22       LIKE sy-datum,

   v_belnr_f_22_aux LIKE /pws/zycbt051-belnr_rd,

   v_dt_f_22_aux    LIKE sy-datum,

   v_codeven_aux   LIKE /pws/zycbt011-codeven,

   v_variacao      LIKE /pws/zycbt005-vlme_p,

   v_reais_c       LIKE /pws/zycbt005-vlme_p,

   v_reais_f       LIKE /pws/zycbt005-vlme_p,

...