CE PLUS - Nota 007067

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 01/08/2008 00:00:00

Data/Hora Última Alteração: 11/03/2010 10:04:36

Descrição da Nota: VINCULAÇÃO LIQUIDAÇÃO AUTOMÁTICA/LIQUIDAÇÃO - CHECK DOCUMENTOS CONTÁBEIS

Sintoma

 

Ao efetuar a vinculação com liquidação automática ou liquidação, não esta consistindo corretamente a

verificação dos documentos contábeis.

 

Solução

 

Tratar para considerar tanto documentos da 226 como da 030, verificando se existe saldo na tabela.

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÃO - DOCTOS COMPENSADOS - CONSIDERAR VALORES MANTIDOS EXTERIOR

LIQUIDAÇÃO - VERIFICAÇÃO DE DOCUMENTO COMPENSADO - FATURA C/ ORDEM PAGTO

LIQUIDAÇÃO DE FATURAS

TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T

Informações Complementares

 

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

Nota Número 07067 Data: 01/08/2008 Hora: 13:11:18

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

 

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

Nota Número              : 07067

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00058

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VINCULAÇÃO LIQUIDAÇÃO AUTOMÁTICA/LIQUIDAÇÃO - CHECK DOCUMENTOS CONTÁBEIS

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

Palavras Chave:

VINCULAÇÃO LIQUIDAÇÃO AUTOMÁTICA/LIQUIDAÇÃO CHECK DOCUMENTOS CONTÁBEI

 

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

Objetos da nota:

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB009F04

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

      gsberf   = p_vinculacao-gsberf

    ASSIGNING <fs_zycbt017>.

  READ TABLE p_itab_zycbt030

    WITH KEY

      nrinvoic = p_vinculacao-nrinvoic

      nrparcf  = p_vinculacao-nrparcf

      gsberf   = p_vinculacao-gsberf

    ASSIGNING <fs_zycbt030>.

  IF <fs_zycbt017> IS ASSIGNED AND

     <fs_zycbt030> IS ASSIGNED.

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

    READ TABLE itab_zycbt226

    WITH KEY

      nrinvoic = p_vinculacao-nrinvoic

      nrparcf  = p_vinculacao-nrparcf

      gsberf   = p_vinculacao-gsberf

    ASSIGNING <fs_zycbt226>.

    IF <fs_zycbt226> IS ASSIGNED.

* << Fim da exclusão

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

    SORT itab_zycbt226 BY nrinvoic nrparcf gsberf belnr_op belnr_op2.

    LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>

                          WHERE nrinvoic = p_vinculacao-nrinvoic

                            AND nrparcf  = p_vinculacao-nrparcf

                            AND gsberf   = p_vinculacao-gsberf.

    ENDLOOP.

    IF <fs_zycbt226> IS ASSIGNED AND

       NOT /pws/zyglt009-comp_aut_cc IS INITIAL.

* << Fim da inclusão

      IF NOT <fs_zycbt226>-belnr_op2 IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op2 TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto2 TO <fs_budat>.

      ELSEIF NOT <fs_zycbt226>-belnr_op IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto TO <fs_budat>.

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

      ENDIF.

      PERFORM adiciona_documentos

        USING

          <fs_zycbt017>-bukrs

          <fs_belnr>

          <fs_budat>

          'S'.

* << Fim da inclusão

      ENDIF.

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

    ELSE.

* << Fim da exclusão

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

    READ TABLE itab_zycbt030 WITH KEY nrinvoic = p_vinculacao-nrinvoic

                                      nrparcf  = p_vinculacao-nrparcf

                                      gsberf   = p_vinculacao-gsberf.

    IF itab_zycbt030-vlsltrans > 0.

* << Fim da inclusão

      ASSIGN <fs_zycbt030>-budat TO <fs_budat>.

      IF <fs_zycbt030>-belnr6 IS INITIAL.

        ASSIGN <fs_zycbt030>-belnr TO <fs_belnr>.

      ELSE.

        ASSIGN <fs_zycbt030>-belnr6 TO <fs_belnr>.

      ENDIF.

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

    ENDIF.

* << Fim da exclusão

    PERFORM adiciona_documentos

      USING

        <fs_zycbt017>-bukrs

        <fs_belnr>

        <fs_budat>

        'S'.

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

    ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM adiciona_documentos

  USING

    value(p_bukrs)   TYPE bseg-bukrs

    value(p_belnr)   TYPE bseg-belnr

    value(p_dtdocto) TYPE bseg-augdt

    value(p_shkzg)   TYPE bseg-shkzg.

  DATA:

    wa_documento TYPE t_documento,

...

 

...

  IF sy-subrc EQ 0.

    SELECT nrinvoic nrparcf vbeln gsberf belnr belnr6 budat

    FROM /pws/zycbt030

    INTO TABLE p_itab_zycbt030

    FOR ALL ENTRIES IN p_itab_zycbt017

    WHERE

      nrinvoic EQ p_itab_zycbt017-nrinvoic AND

      nrparcf  EQ p_itab_zycbt017-nrparcf  AND

      gsberf   EQ p_itab_zycbt017-gsberf   AND

      vlslliq  GT 0.

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

    SELECT * FROM /pws/zycbt030 INTO TABLE itab_zycbt030

             FOR ALL ENTRIES IN p_itab_zycbt030

             WHERE nrinvoic EQ p_itab_zycbt030-nrinvoic AND

                   nrparcf  EQ p_itab_zycbt030-nrparcf  AND

                   gsberf   EQ p_itab_zycbt030-gsberf.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM seleciona_liquidacao_andamento

  USING

    p_itab_vinculacao TYPE t_itab_vinculacao

  CHANGING

    p_itab_zycbt209 TYPE t_itab_zycbt209.

  CHECK NOT p_itab_vinculacao IS INITIAL.

  SELECT

    bukrs nrinvoic belnr dtincl gsberf nrparcf saldo belnr2 dtbelnr

    koart umskz    hkont

    FROM /pws/zycbt209

    INTO TABLE p_itab_zycbt209

    FOR ALL ENTRIES IN p_itab_vinculacao

    WHERE

      nrinvoic EQ p_itab_vinculacao-nrinvoic AND

      gsberf   EQ p_itab_vinculacao-gsberf   AND

      nrparcf  EQ p_itab_vinculacao-nrparcf  AND

...

 

...

    p_itab_documento TYPE t_itab_documento

  CHANGING

    p_itab_documento_erro TYPE t_itab_documento.

  TYPES

    t_itab_bseg TYPE SORTED TABLE OF t_documento

      WITH NON-UNIQUE KEY bukrs belnr gjahr.

  FIELD-SYMBOLS <fs_documento> TYPE t_documento.

  DATA:

    itab_bseg TYPE t_itab_bseg,

    v_erro(1) TYPE c VALUE space.

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

  CHECK NOT /pws/zyglt009-comp_aut_cc IS INITIAL.

* << Fim da exclusão

  CHECK NOT p_itab_documento IS INITIAL.

  SELECT bukrs belnr gjahr shkzg

    FROM bseg

    INTO TABLE itab_bseg

    FOR ALL ENTRIES IN p_itab_documento

    WHERE

      bukrs EQ p_itab_documento-bukrs AND

      belnr EQ p_itab_documento-belnr AND

      gjahr EQ p_itab_documento-gjahr AND

      shkzg EQ p_itab_documento-shkzg AND

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

      augbl EQ space.

* << Fim da exclusão

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

      augbl EQ space                  AND

      wrbtr GT 0.

* << Fim da inclusão

  LOOP AT p_itab_documento ASSIGNING <fs_documento>.

    READ TABLE itab_bseg

      WITH KEY

        bukrs = <fs_documento>-bukrs

        belnr = <fs_documento>-belnr

        gjahr = <fs_documento>-gjahr

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      INSERT <fs_documento> INTO TABLE p_itab_documento_erro.

    ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F04

 

...

      gsberf   EQ p_itab_fatura-gsberf.

  IF sy-subrc EQ 0.

    SELECT nrinvoic nrparcf vbeln gsberf belnr belnr6 budat

           belnr_t budat_t

    FROM /pws/zycbt030

    INTO TABLE p_itab_zycbt030

    FOR ALL ENTRIES IN p_itab_zycbt017

    WHERE

      nrinvoic EQ p_itab_zycbt017-nrinvoic AND

      nrparcf  EQ p_itab_zycbt017-nrparcf  AND

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

      gsberf   EQ p_itab_zycbt017-gsberf.

* << Fim da exclusão

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

      gsberf   EQ p_itab_zycbt017-gsberf   AND

      vlslliq  GT 0.

    SELECT * FROM /pws/zycbt030 INTO TABLE itab_zycbt030

             FOR ALL ENTRIES IN p_itab_zycbt030

             WHERE nrinvoic EQ p_itab_zycbt030-nrinvoic AND

                   nrparcf  EQ p_itab_zycbt030-nrparcf  AND

                   gsberf   EQ p_itab_zycbt030-gsberf.

* << Fim da inclusão

  ENDIF.

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

  IF NOT itab_zycbt005[] IS INITIAL.

    SELECT * FROM /pws/zycbt226

      INTO TABLE itab_zycbt226

      FOR ALL ENTRIES IN itab_zycbt005

      WHERE nrinvoic     = itab_zycbt005-nrinvoic

      AND   nrparcf      = itab_zycbt005-nrparcf

      AND   gsberf       = itab_zycbt005-gsberf

      AND   sld_exterior > 0.

    SORT itab_zycbt226 BY nrinvoic nrparcf gsberf belnr_op belnr_op2.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM seleciona_liquidacao_andamento

  USING

    p_itab_fatura TYPE t_itab_fatura

  CHANGING

    p_itab_zycbt209 TYPE t_itab_zycbt209.

  CHECK NOT p_itab_fatura IS INITIAL.

  SELECT

    bukrs nrinvoic belnr dtincl gsberf nrparcf saldo belnr2 dtbelnr

    FROM /pws/zycbt209

...

 

...

  USING

    value(p_fatura) TYPE t_fatura

    p_itab_zycbt017 TYPE t_itab_zycbt017

    p_itab_zycbt030 TYPE t_itab_zycbt030.

  FIELD-SYMBOLS:

    <fs_belnr>    TYPE bseg-belnr,

    <fs_budat>    TYPE bkpf-budat,

    <fs_zycbt017> TYPE t_zycbt017,

    <fs_zycbt030> TYPE t_zycbt030.

  CHECK NOT p_fatura IS INITIAL.

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

  IF NOT itab_zycbt005[] IS INITIAL.

    SELECT * FROM /pws/zycbt226

      INTO TABLE itab_zycbt226

      FOR ALL ENTRIES IN itab_zycbt005

      WHERE nrinvoic = itab_zycbt005-nrinvoic

      AND   nrparcf  = itab_zycbt005-nrparcf

      AND   gsberf   = itab_zycbt005-gsberf.

  ENDIF.

* << Fim da exclusão

  READ TABLE p_itab_zycbt017

    WITH KEY

      nrinvoic = p_fatura-nrinvoic

      nrparcf  = p_fatura-nrparcf

      gsberf   = p_fatura-gsberf

    ASSIGNING <fs_zycbt017>.

  READ TABLE p_itab_zycbt030

    WITH KEY

      nrinvoic = p_fatura-nrinvoic

      nrparcf  = p_fatura-nrparcf

      gsberf   = p_fatura-gsberf

    ASSIGNING <fs_zycbt030>.

  IF <fs_zycbt017> IS ASSIGNED AND

     <fs_zycbt030> IS ASSIGNED.

    LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>

                          WHERE nrinvoic = p_fatura-nrinvoic

                            AND nrparcf  = p_fatura-nrparcf

                            AND gsberf   = p_fatura-gsberf.

    ENDLOOP.

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

    IF <fs_zycbt226> IS ASSIGNED.

* << Fim da exclusão

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

    IF <fs_zycbt226> IS ASSIGNED AND

       NOT /pws/zyglt009-comp_aut_cc IS INITIAL.

* << Fim da inclusão

      IF NOT <fs_zycbt226>-belnr_op2 IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op2 TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto2 TO <fs_budat>.

      ELSEIF NOT <fs_zycbt226>-belnr_op IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto TO <fs_budat>.

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

      ENDIF.

      PERFORM adiciona_documentos

        USING

          <fs_zycbt017>-bukrs

          <fs_belnr>

          <fs_budat>

          'S'.

* << Fim da inclusão

      ENDIF.

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

    ELSE.

* << Fim da exclusão

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

    READ TABLE itab_zycbt030 WITH KEY nrinvoic = p_fatura-nrinvoic

                                      nrparcf  = p_fatura-nrparcf

                                      gsberf   = p_fatura-gsberf.

    IF itab_zycbt030-vlsltrans > 0.

      ASSIGN <fs_zycbt030>-budat TO <fs_budat>.

* << Fim da inclusão

      IF <fs_zycbt030>-belnr6 IS INITIAL.

        ASSIGN <fs_zycbt030>-belnr TO <fs_belnr>.

      ELSE.

        ASSIGN <fs_zycbt030>-belnr6 TO <fs_belnr>.

      ENDIF.

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

    ENDIF.

* << Fim da exclusão

    PERFORM adiciona_documentos

      USING

        <fs_zycbt017>-bukrs

        <fs_belnr>

        <fs_budat>

        'S'.

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

    ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM documento_liquidacao_andamento

  USING

    value(p_fatura) TYPE t_fatura

    p_itab_zycbt209 TYPE t_itab_zycbt209

  CHANGING

    p_saldo        TYPE t_fatura-saldo.

  FIELD-SYMBOLS:

    <fs_belnr>    TYPE bseg-belnr,

...

 

...

  CHECK NOT p_itab_documento IS INITIAL.

  SELECT bukrs belnr gjahr shkzg

    FROM bseg

    INTO TABLE itab_bseg

    FOR ALL ENTRIES IN p_itab_documento

    WHERE

      bukrs EQ p_itab_documento-bukrs AND

      belnr EQ p_itab_documento-belnr AND

      gjahr EQ p_itab_documento-gjahr AND

      shkzg EQ p_itab_documento-shkzg AND

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

      augbl EQ space.

* << Fim da exclusão

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

      augbl EQ space                  AND

      wrbtr GT 0.

* << Fim da inclusão

  LOOP AT p_itab_documento ASSIGNING <fs_documento>.

    READ TABLE itab_bseg

      WITH KEY

        bukrs = <fs_documento>-bukrs

        belnr = <fs_documento>-belnr

        gjahr = <fs_documento>-gjahr

      TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

      INSERT <fs_documento> INTO TABLE p_itab_documento_erro.

    ENDIF.

...

 

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

04297  - 00001 - LIQUIDAÇÃO - VERIFICAÇÃO DE DOCUMENTO COMPENSADO - FATURA C/ ORDEM PAGTO

04928  - 00002 - LIQUIDAÇÃO DE FATURAS

05512  - 00003 - TRATAMENTO CAMPOS /PWS/ZYCBT030-BELNR_T /PWS/ZYCBT030-BUDAT_T

07002  - 00004 - VINCULAÇÃO - DOCTOS COMPENSADOS - CONSIDERAR VALORES MANTIDOS EXTERIOR

07078  - 00005 - LIQUIDAÇÃO - DUMP DIVISÃO POR ZERO - /PWS/ZYCBT030-KWERT