CE PLUS - Nota 003628

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 08/05/2007 00:00:00

Data/Hora Última Alteração: 04/03/2010 13:42:59

Descrição da Nota: SAÍDA DE PAGAMENTO - FINANCIAMENTO - APROVAÇÃO NÃO AUTOMÁTICA

Sintoma

 

Ao efetuar a saída de pagamento de uma parcela de principal(financiamento) onde o parâmetro da

/PWS/ZYCBT133 esta aprovação não automática, na saída de pagamento o sistema não esta buscando a

conta correta na F-51(clearing). Se fizer via shift+f9 para que contabilize corretamente, o sistema

fecha a saída de pagamento sem fazer a F-53.

 

Solução

 

Fazer as buscas pela nova /PWS/ZYGL012 e /PWS/ZYCBT321. Gravar o documento da F-51 apenas na tabela

do financiamento, como faz no complemento do boleto, assim prossegue e efetua a F-53. Liquidação de

financiamento no cenário de Pagamento não automático (Pré Edição).

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 03628 Data: 08/05/2007 Hora: 10:18:32

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

 

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

Nota Número              : 03628

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00027

Agrupamento              : 00165

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

SAÍDA DE PAGAMENTO - FINANCIAMENTO - APROVAÇÃO NÃO AUTOMÁTICA

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

Palavras Chave:

SAÍDA DE PAGAMENTO FINANCIAMENTO APROVAÇÃO NÃO AUTOMÁTICA

F-63 FBV0 F-51 CLEARING PARCELA DE PRINCIPAL /PWS/ZYCBT133

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

Objetos da nota:

REPS /PWS/MZYCB115F01

REPT /PWS/SAPMZYCB115

 

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

Modificações efetuadas em REPS /PWS/MZYCB115F01

 

...

ENDFORM.

FORM busca_param_clear.

  SELECT *

         FROM /pws/zycbt133

         INTO /pws/zycbt133

         WHERE bukrs EQ itab_zycbt134-bukrs AND

               codmod EQ 'I'.

  ENDSELECT.

ENDFORM.

FORM executa_clearing_financ.

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

  PERFORM clear_date_batch.

  CLEAR itab_zycbt031.

  READ TABLE itab_zycbt031 WITH KEY nrseq = itab_zycbt134-nrseq.

* << Fim da inclusão

  PERFORM get_parameters_clear_financ.

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

  PERFORM clear_date_batch.

* << Fim da exclusão

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = text-213.

  itab_zycbe033-tabela = text-214.

  itab_zycbe033-cpochv = itab_zycbt134-nrseq.

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

  CLEAR itab_zycbt031.

  READ TABLE itab_zycbt031 WITH KEY nrseq = itab_zycbt134-nrseq.

* << Fim da exclusão

  itab_zycbe033-budat = itab_zycbt031-dtcredpr.

  IF /pws/zycbt007-fdtdoc = 'D'.

    itab_zycbe033-bldat = sy-datum.

  ELSE.

    itab_zycbe033-bldat = itab_zycbe033-budat.

  ENDIF.

  itab_zycbe033-bktxt = /pws/zycbt007-bktxt.

  itab_zycbe033-agums = wa_zycbt011-agums.

  itab_zycbe033-agkoa = wa_zycbt011-koart.

  itab_zycbe033-agkon = /pws/zycbt112-lifnr.

  PERFORM verify_null_field USING itab_zycbe033-agkon

                                  'AGKON'

                                  text-061.

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

  itab_zycbt036-tcode  = text-213.

  itab_zycbt036-tabela = text-214.

  itab_zycbt036-cpochv = itab_zycbt134-nrseq.

  itab_zycbt036-belnr  = itab_zycbt134-belnr_p.

  SELECT awkey

         UP TO 1 ROWS

         FROM bkpf

         INTO itab_zycbt036-awkey

         WHERE belnr EQ itab_zycbt134-belnr_p AND

               bukrs EQ itab_zycbt134-bukrs   AND

               gjahr EQ itab_zycbt031-dtcredpr(4).

  ENDSELECT.

  APPEND itab_zycbt036.

* << Fim da exclusão

  itab_zycbt036-tcode  = text-213.

  itab_zycbt036-tabela = text-214.

  itab_zycbt036-cpochv = itab_zycbt134-nrseq.

  CLEAR v_nrparc.

  v_nrparc = itab_zycbt031-nrparc .

  SELECT belnr belnr_c ftransf

         UP TO 1 ROWS

         FROM /pws/zycbt113

         INTO  (/pws/zycbt113-belnr, /pws/zycbt113-belnr_c,

                /pws/zycbt113-ftransf)

...

 

...

  ELSE.

    SELECT awkey

           UP TO 1 ROWS

           FROM bkpf

           INTO itab_zycbt036-awkey

           WHERE belnr EQ itab_zycbt036-belnr AND

                 bukrs EQ itab_zycbt134-bukrs AND

                 gjahr EQ /pws/zycbt112-dtdesem(4).

    ENDSELECT.

  ENDIF.

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

  APPEND itab_zycbt036.

  itab_zycbt036-tcode  = text-213.

  itab_zycbt036-tabela = text-214.

  itab_zycbt036-cpochv = itab_zycbt134-nrseq.

  itab_zycbt036-belnr  = itab_zycbt134-belnr_p.

  SELECT awkey

         UP TO 1 ROWS

         FROM bkpf

         INTO itab_zycbt036-awkey

         WHERE belnr EQ itab_zycbt134-belnr_p AND

               bukrs EQ itab_zycbt134-bukrs   AND

               gjahr EQ itab_zycbt031-dtcredpr(4).

  ENDSELECT.

* << Fim da inclusão

  APPEND itab_zycbt036.

  IF itab_zycbt031-tpparc = 'J'.

    itab_zycbe033-d_newko = itab_zycbt134-bcocred.

  ELSE.

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

    READ TABLE itab_zycbt012c WITH KEY codeven = vcodeven

                                       codmod  = 'I'

                                       codaux  = /pws/zycbt112-codint.

* << Fim da exclusão

    v_evento = vcodeven.

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

    itab_zycbe033-d_newko = itab_zycbt012c-saknr1.

* << Fim da exclusão

  ENDIF.

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

  IF itab_zycbt031-tpparc EQ 'P'.

    LOOP AT itab_zyglt321.

      CASE itab_zyglt321-cpor3.

        WHEN 'SGTXT'.

          CASE itab_zyglt321-cpocb.

            WHEN 'NRSEQ'.

              MOVE: /pws/zycbt112-nrseq TO itab_zycbe033-d_sgtxt,

                    /pws/zycbt112-nrseq TO itab_zycbe033-c_sgtxt.

            WHEN 'NRFINANC'.

              MOVE: /pws/zycbt112-nrfinanc TO itab_zycbe033-d_sgtxt,

                    /pws/zycbt112-nrfinanc TO itab_zycbe033-c_sgtxt.

            WHEN 'TXTINF'.

              IF /pws/zycbt112-txtinf IS INITIAL.

                MOVE wa_zycbt011-txtdesc TO:

                       itab_zycbe033-d_sgtxt,

                       itab_zycbe033-c_sgtxt.

              ELSE.

                MOVE: /pws/zycbt112-txtinf TO itab_zycbe033-d_sgtxt,

                      /pws/zycbt112-txtinf TO itab_zycbe033-c_sgtxt.

              ENDIF.

            WHEN space.

              MOVE itab_zyglt321-descr TO:

                     itab_zycbe033-d_sgtxt,

                     itab_zycbe033-c_sgtxt.

          ENDCASE.

        WHEN 'VALUT'.

          CASE itab_zyglt321-cpocb.

            WHEN 'DTINCL'.

              MOVE /pws/zycbt112-dtincl TO:

                      itab_zycbe033-d_valut,

                      itab_zycbe033-c_valut.

            WHEN 'DTDESEM'.

              MOVE /pws/zycbt112-dtdesem TO:

                      itab_zycbe033-d_valut,

                      itab_zycbe033-c_valut.

            WHEN 'DTVENCTO'.

              MOVE /pws/zycbt112-dtvencto TO:

                      itab_zycbe033-d_valut,

                      itab_zycbe033-c_valut.

            WHEN 'DTFINAL'.

              MOVE wa_zycbt113-dtfinal TO:

                      itab_zycbe033-d_valut,

                      itab_zycbe033-c_valut.

          ENDCASE.

        WHEN 'ZFBDT'.

          CASE itab_zyglt321-cpocb.

            WHEN 'DTINCL'.

              MOVE /pws/zycbt112-dtincl TO:

                      itab_zycbe033-zfbdt  .

            WHEN 'DTDESEM'.

              MOVE /pws/zycbt112-dtdesem TO:

                      itab_zycbe033-zfbdt  .

            WHEN 'DTVENCTO'.

              MOVE /pws/zycbt112-dtvencto TO:

                      itab_zycbe033-zfbdt  .

            WHEN 'DTFINAL'.

              MOVE wa_zycbt113-dtfinal TO:

                      itab_zycbe033-zfbdt  .

          ENDCASE.

        WHEN 'XBLNR'.

          CASE itab_zyglt321-cpocb.

            WHEN 'NRSEQ'.

              MOVE /pws/zycbt112-nrseq TO:

                     itab_zycbe033-xblnr  .

            WHEN 'NRFINANC'.

              MOVE /pws/zycbt112-nrfinanc TO:

                     itab_zycbe033-xblnr  .

          ENDCASE.

        WHEN 'ZUONR'.

          CASE itab_zyglt321-cpocb.

            WHEN 'NRSEQ'.

              MOVE /pws/zycbt112-nrseq TO:

                     itab_zycbe033-d_zuonr,

                     itab_zycbe033-c_zuonr.

            WHEN 'NRFINANC'.

              MOVE /pws/zycbt112-nrfinanc TO:

                     itab_zycbe033-d_zuonr,

                     itab_zycbe033-c_zuonr.

          ENDCASE.

      ENDCASE.

    ENDLOOP.

  ELSE.

* << Fim da inclusão

  LOOP AT itab_zycbt013.

    CASE itab_zycbt013-cpor3.

      WHEN 'XBLNR'.

        CASE itab_zycbt013-cpocb.

          WHEN 'NRFINANC'.

            itab_zycbe033-xblnr = /pws/zycbt112-nrfinanc.

          WHEN 'NRSEQ'.

            itab_zycbe033-xblnr = /pws/zycbt112-nrseq.

          WHEN 'NRLINHA'.

            itab_zycbe033-xblnr = /pws/zycbt112-nrlinha.

...

 

...

            itab_zycbe033-c_zuonr = /pws/zycbt112-nrfinanc.

          WHEN 'NRSEQ'.

            itab_zycbe033-d_zuonr = /pws/zycbt112-nrseq.

            itab_zycbe033-c_zuonr = /pws/zycbt112-nrseq.

          WHEN 'NRLINHA'.

            itab_zycbe033-d_zuonr = /pws/zycbt112-nrlinha.

            itab_zycbe033-c_zuonr = /pws/zycbt112-nrlinha.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

  PERFORM verify_null_field USING itab_zycbt134-bukrs

                                  'BUKRS'

                                  text-010.

  itab_zycbe033-bukrs = itab_zycbt134-bukrs.

  PERFORM verify_null_field USING itab_zycbt134-waers

                                  'WAERS'

                                  text-011.

  itab_zycbe033-waers = itab_zycbt134-waers.

  itab_zycbe033-kursf = itab_zycbt134-kursf.

  PERFORM verify_null_field USING wa_zycbt011-blart

...

 

...

  LOOP AT itab_zycbt034.

    MOVE-CORRESPONDING itab_zycbt134 TO itab_erro_s.

    itab_erro_s-dtcont    = sy-datum.

    itab_erro_s-belnr     = ''.

    CONCATENATE text-264 itab_zycbt034-descricao text-265

                INTO itab_erro_s-msg1 SEPARATED BY space.

    itab_erro_s-msg2      = text-266.

    APPEND itab_erro_s.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

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

    CALL FUNCTION '/PWS/ZYCM_TRANSACAO_F_51G'

* << Fim da exclusão

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

    CALL FUNCTION '/PWS/ZYCM_TRANSACAO_F_51A'

* << Fim da inclusão

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_zycbt036      = itab_zycbt036

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = text-213

                                        tabela = text-214

                                        cpochv = itab_zycbt031-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc = 0.

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

        IF NOT itab_zycbt032-belnr IS INITIAL.

          itab_zycbt134-statusp    = text-079.

          itab_zycbt134-belnr_c    = itab_zycbt032-belnr.

          itab_zycbt134-dtlanc     = itab_zycbe033-budat.

        ENDIF.

        MODIFY itab_zycbt134.

* << Fim da exclusão

        IF itab_zycbt031-tpparc EQ 'P'.

          UPDATE /pws/zycbt113 SET belnr_c = itab_zycbt032-belnr

                 WHERE nrseq = itab_zycbt031-nrcorresp

                   AND tpparc = itab_zycbt031-tpparc

                   AND nrparc = itab_zycbt031-nrparc.

        ELSE.

          UPDATE /pws/zycbt113 SET belnr_cl = itab_zycbt032-belnr

                 WHERE nrseq = itab_zycbt031-nrcorresp

                   AND tpparc = itab_zycbt031-tpparc

                   AND nrparc = itab_zycbt031-nrparc.

...

 

...

        APPEND itab_erro_s.

      ENDLOOP.

      v_errocl = 'X'.

    ENDIF.

  ENDIF.

  PERFORM clear_date_batch.

  CLEAR   itab_zycbt036.

  REFRESH itab_zycbt036.

ENDFORM.

FORM get_parameters_clear_financ.

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

  DATA: v_tipo_prazo LIKE /pws/zyglt316-codaux1,

        v_bukrs_p    LIKE /pws/zycbt145-bukrs_p,

        v_aux_ktosl  LIKE /pws/zyglt316-ktosl,

        v_aux_cod    LIKE /pws/zyglt316-codaux1.

* << Fim da inclusão

  CLEAR vcodeven.

  IF itab_zycbt031-tpparc = 'P'.

    vcodeven = '001CL'.

  ELSEIF itab_zycbt031-tpparc = 'C'.

    vcodeven = '004CL'.

  ELSEIF itab_zycbt031-tpparc = 'J'.

    vcodeven = '002P'.

  ENDIF.

  v_evento = vcodeven.

  SELECT belnr belnr_c lifnr codint dtvencto dtdesem

...

 

...

  REFRESH itab_zycbt013.

  SELECT * FROM /pws/zycbt013

           INTO TABLE itab_zycbt013

           WHERE tabela = '/PWS/ZYCBT112'.

  v_nrdias = /pws/zycbt112-dtvencto - /pws/zycbt112-dtdesem.

  IF v_nrdias <= 360.

    v_prazo = 'S'.

  ELSE.

    v_prazo = 'L'.

  ENDIF.

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

  REFRESH itab_zycbt012c.

  SELECT *

         FROM /pws/zycbt012

         INTO TABLE itab_zycbt012c

         WHERE codeven = vcodeven AND

               codmod  = 'I'.

* << Fim da exclusão

  CLEAR wa_zycbt011.

  SELECT *

         UP TO 1 ROWS

         FROM /pws/zycbt011

         INTO wa_zycbt011

         WHERE codeven = vcodeven AND

               codmod  = 'I'.

  ENDSELECT.

  SELECT *

         FROM /pws/zycbt113

         INTO wa_zycbt113

         WHERE nrseq  = itab_zycbt031-nrcorresp AND

               tpparc = itab_zycbt031-tpparc    AND

               nrparc = itab_zycbt031-nrparc.

  ENDSELECT.

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

  CONCATENATE '001' /pws/zycbt112-codint INTO v_codeven.

  SELECT *

    FROM /pws/zyglt321

    INTO TABLE itab_zyglt321

    WHERE ktosl   EQ 'FIN' AND

          codeven EQ v_codeven.

  IF itab_zycbt031-tpparc EQ 'P'.

    CONCATENATE /pws/zycbt112-codint wa_zycbt113-ftransf

                INTO v_tipo_prazo SEPARATED BY space.

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = itab_zycbt031-bukrs

              ktosl           = 'PFI'

              codaux1         = v_tipo_prazo

         TABLES

              account         = itab_zyglt316

         EXCEPTIONS

              key_not_found   = 1

              rules_not_found = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko.

    ENDIF.

    CLEAR v_tipo_prazo.

    CONCATENATE /pws/zycbt112-codint wa_zycbt113-ftransf

                  INTO v_tipo_prazo SEPARATED BY space.

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = itab_zycbt031-bukrs

              ktosl           = 'FIN'

              codaux1         = v_tipo_prazo

         TABLES

              account         = itab_zyglt316

         EXCEPTIONS

              key_not_found   = 1

              rules_not_found = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zyglt316 INDEX 1.

      IF itab_zyglt316-konts NE itab_zycbe033-d_newko.

        MOVE itab_zyglt316-konts TO itab_zycbe033-c_newko.

      ENDIF.

    ENDIF.

  ELSE.

    IF ( /pws/zycbt112-fpagto_c EQ 'P'   AND

         /pws/zycbt112-tpcomis  EQ 'P' ) OR

       ( /pws/zycbt112-fpagto_c EQ 'D'   AND

         /pws/zycbt112-tpcomis  EQ 'F' ) OR

       ( /pws/zycbt112-fpagto_c EQ 'L'   AND

         /pws/zycbt112-tpcomis  EQ 'V' ).

      v_aux_ktosl = 'PDI'.

      v_aux_cod   = 'CO'.

    ELSE.

      v_aux_ktosl = 'PVI'.

      v_aux_cod   = 'COMIS C'.

    ENDIF.

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = itab_zycbt031-bukrs

              ktosl           = v_aux_ktosl

              codaux1         = v_aux_cod

              codaux2         = /pws/zycbt112-codint

         TABLES

              account         = itab_zyglt316

         EXCEPTIONS

              key_not_found   = 1

              rules_not_found = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko.

    ENDIF.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM seleciona_provisionados.

  DATA: v_vlprov   LIKE /pws/zycbt154-vlme,

        v_vlprovir LIKE /pws/zycbt154-vlme.

  PERFORM seleciona_zycbt074.

  LOOP AT itab_zycbt134aux.

    IF itab_zycbt134aux-mdcorresp EQ 'EO'.

      READ TABLE itab_zycbt074

        WITH KEY nrseqc = itab_zycbt134aux-nrcorresp

        TRANSPORTING tipo_comis.

...

 

...

  OR NOT v_doc_est IS INITIAL.

    READ TABLE itab_zycbt032 WITH KEY

                                    tcode  = text-087

                                    tabela = '/PWS/ZYCBT031'

                                    cpochv = itab_zycbt134_estorno-nrseq

                                    tpmsg  = 'S'.

    IF sy-subrc NE 0

    AND v_doc_est IS INITIAL.

      v_erro_anulacomp = 'X'.

    ELSE.

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

      MESSAGE i077 WITH /pws/zycbt113-belnr_c.

* << Fim da exclusão

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

      move-corresponding itab_zycbt134_estorno to itab_acerto_s.

* << Fim da inclusão

      IF itab_zycbt031_aux-tpparc EQ 'P'.

        UPDATE /pws/zycbt113 SET belnr_c = space

               WHERE nrseq = itab_zycbt031_aux-nrcorresp

                 AND tpparc = itab_zycbt031_aux-tpparc

                 AND nrparc = itab_zycbt031_aux-nrparc.

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

        itab_acerto_s-belnr  = /pws/zycbt113-belnr_c.

* << Fim da inclusão

      ELSE.

        UPDATE /pws/zycbt113 SET belnr_cl = space

               WHERE nrseq = itab_zycbt031_aux-nrcorresp

                 AND tpparc = itab_zycbt031_aux-tpparc

                 AND nrparc = itab_zycbt031_aux-nrparc.

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

        itab_acerto_s-belnr  = /pws/zycbt113-belnr_cl.

* << Fim da inclusão

      ENDIF.

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

      itab_acerto_s-dtcont    = itab_zycbt134_estorno-dtlanc.

      itab_acerto_s-texto     = text-053.

      APPEND itab_acerto_s.

* << Fim da inclusão

    ENDIF.

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i127 WITH itab_zycbt034-descricao v_evento.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB115

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 053

 

Texto: (16 caracteres)

"Estorno Clearing"

 

Comprimento máximo: 16