CE PLUS - Nota 001681

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 06/07/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:14:39

Descrição da Nota: VINCULAÇÃO GRAVAR TABELAS ANTES DO RELATORIO DE DOCUMENTOS CONTABEIS.

Sintoma

1) Criei uma captação e gravei.

2) Depois entrei para criar uma vinculação, selecionei as faturas, gravei e o Relatório de

documentos gerados foi exibido corretamente, mas se ao invés de eu sair desse relatório pelos botões

(Voltar, Sair ou Cancelar) eu simplesmente fechar o Relatório no "X" (ou seja, fechar a janela), as

faturas não são gravadas na tabela 005, o saldo não é baixado nem do contrato e nem das faturas e as

mesmas também não aparecem no histórico contábil e o documento também não é atualizado na tabela

001, portanto se eu gravar uma nova vinculação ocorrerá erro, pois o documento original já está

compensado.

 

 

Solução

Reestruturado para que a gravação das tabelas aconteça antes da exibição dos documentos contabeis.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01681 Data: 06/07/2006 Hora: 08:54:22

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

 

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

Nota Número              : 01681

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00121

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VINCULAÇÃO GRAVAR TABELAS ANTES DO RELATORIO DE DOCUMENTOS CONTABEIS.

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

Palavras Chave:

VINCULAÇÃO GRAVAR TABELAS ANTES DO RELATORIO DE DOCUMENTOS CONTABEIS.

 

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

Objetos da nota:

REPS /PWS/MZYCB009F01

REPS /PWS/MZYCB009F02

REPS /PWS/MZYCB009F03

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009F06

REPS /PWS/MZYCB009F07

REPS /PWS/MZYCB009F09

REPS /PWS/MZYCB009F10

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F01

 

...

        itab_zycbt030-v_kwert =

          ( itab_zycbt030-kwert / itab_zycbt030-s_kwert )

          * itab_zycbt005-vlvinc.

        v_brl_contr = itab_zycbt030-v_kwert.

        PERFORM contabiliza_cp_arbitr.

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

        PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

        IF NOT itab_erro[] IS INITIAL.

          EXPORT itab_erro TO MEMORY ID '001'.

          SUBMIT /pws/zycbr128 AND RETURN.

          REFRESH itab_erro.

        ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F02

 

...

    COMMIT WORK.

  ELSE.

    MESSAGE i015 WITH text-109.

  ENDIF.

  PERFORM limpa_itabs_contabil.

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

  PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  IF NOT itab_erro[] IS INITIAL.

    EXPORT itab_erro TO MEMORY ID '001'.

    SUBMIT /pws/zycbr128 AND RETURN.

    REFRESH itab_erro.

  ENDIF.

...

 

...

    ENDLOOP.

    COMMIT WORK.

    PERFORM limpa_itabs_contabil.

    CLEAR   itab_zycbt006_aux.

    REFRESH itab_zycbt006_aux.

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

    PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

    IF NOT itab_erro[] IS INITIAL.

      EXPORT itab_erro TO MEMORY ID '001'.

      SUBMIT /pws/zycbr126 AND RETURN.

      REFRESH itab_erro.

    ENDIF.

...

 

...

    ENDLOOP.

    COMMIT WORK.

    PERFORM limpa_itabs_contabil.

    CLEAR   itab_zycbt006_aux.

    REFRESH itab_zycbt006_aux.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

    IF NOT itab_erro1[] IS INITIAL.

      EXPORT itab_erro1 TO MEMORY ID '001'.

      SUBMIT /pws/zycbr126 AND RETURN.

      REFRESH itab_erro1.

    ENDIF.

...

 

...

            cancel_display = 'X'

       IMPORTING

            answer         = v_resposta.

  IF v_resposta EQ 'J'.

    PERFORM fill_date1_f02_dev.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      PERFORM executa_exit USING 'VNC016'.

      IF NOT itab_contabil[] IS INITIAL.

        EXPORT itab_contabil TO MEMORY ID '040'.

        EXPORT text-059 TO MEMORY ID '050'.

...

 

...

    ENDIF.

    PERFORM limpa_itabs_contabil.

    CLEAR:  itab_zycbt006_aux,

            v_subrc.

    REFRESH itab_zycbt006_aux.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

    IF NOT itab_erro[] IS INITIAL.

      EXPORT itab_erro TO MEMORY ID '001'.

      SUBMIT /pws/zycbr126 AND RETURN.

      REFRESH itab_erro.

    ENDIF.

...

 

...

          PERFORM clearing_est_rprd_abr USING v_belnr_f_22 v_dt_f_22.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

    ENDIF.

  ENDLOOP.

  IF sy-subrc NE 0.

    MESSAGE i015 WITH text-015.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

      CLEAR itab_erro-vbeln.

      APPEND itab_erro.

    ENDLOOP.

    v_est_baixa = 'X'.

  ENDIF.

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

  PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F03

 

...

               /pws/zycbe001-desc_receb  = 'X' ) .

        PERFORM est_desc_recebiveis TABLES itab_zycbt005_ant.

        PERFORM cont_desc_recebiveis.

      ENDIF.

    ENDIF.

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

    IF /pws/zycbe001-tpcontr     EQ 'DP' AND

       /pws/zycbt089-f_cont_vinc EQ 'F'.

      LOOP AT itab_zycbt005.

        CLEAR itab_zycbt005-slpagar.

        MODIFY itab_zycbt005.

      ENDLOOP.

      MOVE-CORRESPONDING itab_zycbt005 TO /pws/zycbt005.

    ENDIF.

    IF /pws/zycbe001-tpcontr(01) = 'D' AND

       v_erro_estorno = 'X'.

      LOOP AT itab_zycbt005_excluidas.

        /pws/zycbe001-slvinc = /pws/zycbe001-slvinc -

                               itab_zycbt005_excluidas-vlvinc.

      ENDLOOP.

    ENDIF.

    IF /pws/zycbe001-tpcontr(01) = 'D' AND

       /pws/zycbt089-f_cont_vinc = 'F'.

      /pws/zycbe001-slpagar = /pws/zycbe001-slvinc.

    ENDIF.

    /pws/zycbe001-belnr2   = v_belnr_001.

    /pws/zycbe001-dtvincul = v_dtdocto.

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

       wa_zycbt007-liq_cp EQ 'X'.

      IF itab_zycbt005[] IS INITIAL.

        /pws/zycbe001-slpagar = /pws/zycbe001-vlme.

      ELSE.

        CLEAR /pws/zycbe001-slpagar.

      ENDIF.

    ENDIF.

    IF /pws/zycbe001-tpcontr EQ 'DP' AND

       v_erro_estorno IS INITIAL.

      PERFORM atualiza_dados_estorno.

      MODIFY /pws/zycbt001 FROM /pws/zycbe001.

    ELSEIF /pws/zycbe001-tpcontr NE 'DP'.

      MODIFY /pws/zycbt001 FROM /pws/zycbe001.

    ENDIF.

    DELETE itab_zycbt005 WHERE nrinvoic EQ ' '.

    DELETE itab_zycbt005 WHERE vlvinc EQ ' '.

    IF wa_zycbt007-cfm = 'X'.

      LOOP AT itab_zycbt005.

        SELECT SINGLE *

                FROM /pws/zycbt005

                INTO wa_zycbt005_log

                WHERE nrseqc    = itab_zycbt005-nrseqc

                  AND tpdesp    = itab_zycbt005-tpdesp

                  AND nrparc    = itab_zycbt005-nrparc

                  AND dtincl    = itab_zycbt005-dtincl

                  AND nrinvoic  = itab_zycbt005-nrinvoic

                  AND gsberf    = itab_zycbt005-gsberf

                  AND dtvincul  = itab_zycbt005-dtvincul

                  AND dtvencto  = itab_zycbt005-dtvencto.

        DESCRIBE FIELD itab_zycbt005 INTO t_sydes.

        LOOP AT t_sydes-types INTO wa_types.

          v_len = wa_types-length.

          EXIT.

        ENDLOOP.

        wa_log(v_len) = itab_zycbt005(v_len).

        IF sy-subrc EQ 0.

          PERFORM grava_log USING '/PWS/ZYCBT005'

                                  wa_log

                                  'A'.

        ELSE.

          PERFORM grava_log USING '/PWS/ZYCBT005'

                                  wa_log

                                  'C'.

        ENDIF.

        MODIFY /pws/zycbt005 FROM itab_zycbt005.

      ENDLOOP.

    ENDIF.

    IF /pws/zycbe001-tpcontr EQ 'DP' AND

       v_erro_estorno IS INITIAL.

      MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

      MODIFY /pws/zycbt017 FROM TABLE itab_zycbt017.

    ELSEIF /pws/zycbe001-tpcontr NE 'DP'.

      MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

      MODIFY /pws/zycbt017 FROM TABLE itab_zycbt017.

    ENDIF.

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      MODIFY /pws/zycbt002 FROM TABLE itab_zycbt002p.

      MODIFY /pws/zycbt069 FROM TABLE itab_zycbt069.

    ENDIF.

    COMMIT WORK.

    IF /pws/zycbe001-tpcontr(1) EQ 'C' AND wa_zycbt007-liq_cp EQ 'X'.

      IF NOT itab_erro[] IS INITIAL.

        EXPORT itab_erro TO MEMORY ID '001'.

        SUBMIT /pws/zycbr128 AND RETURN.

        REFRESH itab_erro.

      ENDIF.

      PERFORM executa_exit USING 'VNC016'.

      IF NOT itab_contabil[] IS INITIAL.

        EXPORT itab_contabil TO MEMORY ID '040'.

        EXPORT text-059 TO MEMORY ID '050'.

        SUBMIT /pws/zycbr040 AND RETURN.

        REFRESH itab_contabil.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    PERFORM atualiza_reserva.

  ENDIF.

  CLEAR v_ind_mudanca.

  CLEAR v_ind_delecao.

  PERFORM verifica_gravacao.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

        PERFORM baixa_cliente_vinc  USING v_flag_mod.

      ENDIF.

      PERFORM fill_date1_f30_desm USING v_flag_mod .

    ENDIF.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  IF NOT itab_erro[] IS INITIAL.

    EXPORT itab_erro     TO MEMORY ID '001'.

    EXPORT itab_acerto   TO MEMORY ID '002'.

    EXPORT v_saida       TO MEMORY ID '003'.

    EXPORT itab_erro_s   TO MEMORY ID '004'.

...

 

...

    IF V_INDEX GT 1.

      v_line = v_line + 1.

    ENDIF.

    CALL FUNCTION '/PWS/ZYGL_TRATA_DATA'

         EXPORTING

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

              i_trdata         = <fs_zycbt017>-dtvencto

* << Fim da exclusão

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

              i_trdata   = <fs_zycbt017>-dtvencto

* << Fim da inclusão

         IMPORTING

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

              e_trdata         = v_data_aux

* << Fim da exclusão

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

              e_trdata   = v_data_aux

* << Fim da inclusão

         EXCEPTIONS

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

              v_dtbranco       = 1.

* << Fim da exclusão

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

              v_dtbranco = 1.

* << Fim da inclusão

    PERFORM adiciona_linha_tc:

      USING

        '/PWS/ZYCBE005-NRINVOIC' <fs_zycbt017>-nrinvoic v_line

      CHANGING

        p_itab_dynpread,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F06

 

...

    ELSE.

      MESSAGE i015 WITH text-109.

    ENDIF.

  ENDIF.

  PERFORM limpa_itabs_contabil.

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

  PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  IF NOT itab_erro[] IS INITIAL.

    EXPORT itab_erro TO MEMORY ID '001'.

    SUBMIT /pws/zycbr128 AND RETURN.

    REFRESH itab_erro.

  ENDIF.

...

 

...

                   augdt  = /pws/zycbe050-dtdevol     AND

                   gjahr  = v_year AND

                   augbl  = /pws/zycbe050-belnr_dev   AND

                   belnr <> /pws/zycbe050-belnr_dev.

    PERFORM fill_date1_fbra_dev.

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

    PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

    IF NOT itab_erro[] IS INITIAL.

      EXPORT itab_erro TO MEMORY ID '001'.

      SUBMIT /pws/zycbr128 AND RETURN.

      REFRESH itab_erro.

    ENDIF.

...

 

...

          PERFORM estorna_erro USING itab_zycbe033-budat.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

    LOOP AT itab_zycbt051 WHERE mark EQ 'X'.

      MODIFY /pws/zycbt051 FROM itab_zycbt051.

    ENDLOOP.

    COMMIT WORK.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

      IF NOT itab_zycbt017-vlslf EQ itab_zycbt051-vlme_fat.

        PERFORM estorna_erro USING itab_zycbt051-dtfech.

      ENDIF.

    ENDIF.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

        PERFORM estorno_ap.

        v_subrc = 4.

      ENDIF.

    ENDIF.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

  PERFORM limpa_itabs_contabil.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F07

 

...

      MOVE text-038 TO v_flag_mod.

      PERFORM seleciona_paga_documento USING v_flag_mod.

      PERFORM grava_liquidacao.

      PERFORM save_changes.

    ENDIF.

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

  PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  IF NOT itab_erro[] IS INITIAL.

    EXPORT itab_erro TO MEMORY ID '001'.

    SUBMIT /pws/zycbr128 AND RETURN.

    REFRESH itab_erro.

  ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F09

 

...

    ENDIF.

  ENDIF.

  IF sy-subrc NE 0.

    MESSAGE i015 WITH text-015 text-233.

  ENDIF.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

          MESSAGE i016 WITH itab_zycbt034-descricao.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-060 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

    ENDLOOP.

    COMMIT WORK.

    MODIFY itab_zycbt005.

  ENDLOOP.

  sy-subrc = v_subrc.

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

  PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

        ENDLOOP.

      ENDIF.

    ENDIF.

    PERFORM limpa_itabs_contabil.

  ENDLOOP.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F10

 

...

      APPEND itab_contabil.

    WHEN 'P' OR 'S'.

      PERFORM contabiliza_estorno_pre.

  ENDCASE.

  PERFORM grava_tab_transparente.

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

   PERFORM GRAVA_CONTABILIZACAO.

* << Fim da inclusão

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

...

 

...

    MESSAGE w061 WITH text-382 text-383.

    itab_zycbt005[] = itab_zycbt005_ant[].

    v_executa = 'X'.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form GRAVA_CONTABILIZACAO.

    IF /pws/zycbe001-tpcontr     EQ 'DP' AND

       /pws/zycbt089-f_cont_vinc EQ 'F'.

      LOOP AT itab_zycbt005.

        CLEAR itab_zycbt005-slpagar.

        MODIFY itab_zycbt005.

      ENDLOOP.

      MOVE-CORRESPONDING itab_zycbt005 TO /pws/zycbt005.

    ENDIF.

    IF /pws/zycbe001-tpcontr(01) = 'D' AND

       v_erro_estorno = 'X'.

      LOOP AT itab_zycbt005_excluidas.

        /pws/zycbe001-slvinc = /pws/zycbe001-slvinc -

                               itab_zycbt005_excluidas-vlvinc.

      ENDLOOP.

    ENDIF.

    IF /pws/zycbe001-tpcontr(01) = 'D' AND

       /pws/zycbt089-f_cont_vinc = 'F'.

      /pws/zycbe001-slpagar = /pws/zycbe001-slvinc.

    ENDIF.

    /pws/zycbe001-belnr2   = v_belnr_001.

    /pws/zycbe001-dtvincul = v_dtdocto.

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

       wa_zycbt007-liq_cp EQ 'X'.

      IF itab_zycbt005[] IS INITIAL.

        /pws/zycbe001-slpagar = /pws/zycbe001-vlme.

      ELSE.

        CLEAR /pws/zycbe001-slpagar.

      ENDIF.

    ENDIF.

    IF /pws/zycbe001-tpcontr EQ 'DP' AND

       v_erro_estorno IS INITIAL.

      PERFORM atualiza_dados_estorno.

      MODIFY /pws/zycbt001 FROM /pws/zycbe001.

.

    ELSEIF /pws/zycbe001-tpcontr NE 'DP'.

      MODIFY /pws/zycbt001 FROM /pws/zycbe001.

.

    ENDIF.

    DELETE itab_zycbt005 WHERE nrinvoic EQ ' '.

    DELETE itab_zycbt005 WHERE vlvinc EQ ' '.

    IF wa_zycbt007-cfm = 'X'.

      LOOP AT itab_zycbt005.

        SELECT SINGLE *

                FROM /pws/zycbt005

                INTO wa_zycbt005_log

                WHERE nrseqc    = itab_zycbt005-nrseqc

                  AND tpdesp    = itab_zycbt005-tpdesp

                  AND nrparc    = itab_zycbt005-nrparc

                  AND dtincl    = itab_zycbt005-dtincl

                  AND nrinvoic  = itab_zycbt005-nrinvoic

                  AND gsberf    = itab_zycbt005-gsberf

                  AND dtvincul  = itab_zycbt005-dtvincul

                  AND dtvencto  = itab_zycbt005-dtvencto.

        DESCRIBE FIELD itab_zycbt005 INTO t_sydes.

        LOOP AT t_sydes-types INTO wa_types.

          v_len = wa_types-length.

          EXIT.

        ENDLOOP.

        wa_log(v_len) = itab_zycbt005(v_len).

        IF sy-subrc EQ 0.

          PERFORM grava_log USING '/PWS/ZYCBT005'

                                  wa_log

                                  'A'.

        ELSE.

          PERFORM grava_log USING '/PWS/ZYCBT005'

                                  wa_log

                                  'C'.

        ENDIF.

        MODIFY /pws/zycbt005 FROM itab_zycbt005.

      ENDLOOP.

    ENDIF.

    IF /pws/zycbe001-tpcontr EQ 'DP' AND

       v_erro_estorno IS INITIAL.

      MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

      MODIFY /pws/zycbt017 FROM TABLE itab_zycbt017.

    ELSEIF /pws/zycbe001-tpcontr NE 'DP'.

      MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

      MODIFY /pws/zycbt017 FROM TABLE itab_zycbt017.

    ENDIF.

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      MODIFY /pws/zycbt002 FROM TABLE itab_zycbt002p.

      MODIFY /pws/zycbt069 FROM TABLE itab_zycbt069.

    ENDIF.

    COMMIT WORK.

endform.

* << Fim da inclusão