CE PLUS - Nota 002264

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Pagamento de Juros

Data/Hora da Publicação: 17/10/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:20:53

Descrição da Nota: PAGAMENTO DE JUROS - ESTRATÉGIA DE LIBERAÇÃO

Sintoma

O programa de Pagamento de Juros não esta encontrando a estratégia de liberação, sendo que as contas

e outros dados estão parametrizados na estratégia. Quando encontrada a estratégia, o programa de

liberação não esta conseguindo efetuar a contabilização. Após salvar os dados do pagamento de juros,

quando entramos novamente no mesmo e salvamos, exibe mensagem de que o juros já esta sendo utilizado

em outro pagamento, mas só esta sendo utilizado no que esta sendo editado, não salvando os dados da

estratégia.

 

 

Solução

Ao verificar a estratégia, buscar todas as contas utilizadas na contabilização. Ajustar o dequeue

para desbloquear o registro do pagamento de juros e conseguir efetuar a liberação e contabilização.

Ao verificar se o juros esta sendo utilizado, buscar o juros de qualquer pagamento de juros

diferente do que esta sendo editado.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 02264 Data: 17/10/2006 Hora: 09:25:00

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

 

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

Nota Número              : 02264

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00136

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

PAGAMENTO DE JUROS - ESTRATÉGIA DE LIBERAÇÃO

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

Palavras Chave:

PAGAMENTO DE JUROS ESTRATÉGIA DE LIBERAÇÃO CONTAS CONTÁBEIS

ENQUEUE DEQUEUE

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

Objetos da nota:

FUNC /PWS/ZYCB_DEQUEUE_EZYCBT043

REPS /PWS/MZYCB012F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_DEQUEUE_EZYCBT043

 

...

  __seqta_tab-gmode = mode_ZYCBT043.

  __seqta_tab-garg = %a_ZYCBT043.

  append __seqta_tab.

  perform send_enqueue(saplsena)

          tables __seqta_tab

* >> Início da exclusão: FUNCTION /PWS/ZYCB_DEQUEUE_EZYCBT043

          using '1' __scope __wait ' ' '/PWS/ZYCBT043' _collect.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCB_DEQUEUE_EZYCBT043

          using '2' __scope ' ' __wait '/PWS/EZYCBT043' _collect.

* << Fim da inclusão

endfunction.

 

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

Modificações efetuadas em REPS /PWS/MZYCB012F01

 

...

    CLEAR   itab_zycbt044_verif.

    REFRESH itab_zycbt044_verif.

    SELECT * FROM /pws/zycbt044

           INTO TABLE itab_zycbt044_verif

           FOR ALL ENTRIES IN itab_zycbt044

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

           WHERE nrpagto = itab_zycbt044-nrpagto

* << Fim da exclusão

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

           WHERE nrpagto <> itab_zycbt044-nrpagto

* << Fim da inclusão

           AND   nrseqc  = itab_zycbt044-nrseqc

           AND   tpdesp  = itab_zycbt044-tpdesp

           AND   nrparc  = itab_zycbt044-nrparc

           AND   tpjuros = itab_zycbt044-tpjuros.

    IF sy-subrc EQ 0.

...

 

...

  ELSE.

    MESSAGE e015 WITH text-028 text-029.

  ENDIF.

ENDFORM.

FORM fill_date_f-02.

* >> Início da inclusão: FORM FILL_DATE_F-02

  IF /pws/zyglt009 IS INITIAL.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zyglt009

    WHERE bukrs = /pws/zycbt004-bukrs.

* >> Início da inclusão: FORM FILL_DATE_F-02

  ENDIF.

* << Fim da inclusão

  IF /pws/zyglt009-cont_rot_sep = 'N'  AND

     /pws/zycbt004-tpdesp = 'J'        AND

     ( /pws/zycbt004-tpcontr(01) = 'A' OR

       /pws/zycbt004-tpcontr(01) = 'E' ) .

    PERFORM get_parameters_f-02_aux.

...

 

...

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko1.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

      itab_contas-conta = itab_zycbe033-d_newko1.

      APPEND itab_contas.

* << Fim da inclusão

    ENDIF.

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                    'NEWKO'

                                    text-016.

  ELSEIF /pws/zycbt004-tpcontr = 'E'.

...

 

...

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko1.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

      itab_contas-conta = itab_zycbe033-d_newko1.

      APPEND itab_contas.

* << Fim da inclusão

    ENDIF.

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                    'NEWKO'

                                    text-016.

  ELSE.

...

 

...

                                      codaux   = v_codauxd.

    LOOP AT itab_zycbt044 WHERE tpdesp NE 'J'.

    ENDLOOP.

    IF sy-subrc = 0.

      itab_zycbe033-d_newko = itab_zycbt012-saknr1.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

      itab_contas-conta = itab_zycbe033-d_newko.

      APPEND itab_contas.

* << Fim da inclusão

      PERFORM verify_null_field USING itab_zycbe033-d_newko

                                     'NEWKO'

                                      text-017.

    ENDIF.

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevenj

                                      chlanc   = 'D'

                                      tpcodaux = 'G'

                                      codaux   = v_codauxj.

    itab_zycbe033-d_newko1 = itab_zycbt012-saknr1.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

    itab_contas-conta = itab_zycbe033-d_newko1.

    APPEND itab_contas.

* << Fim da inclusão

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                   'NEWKO'

                                   text-016.

  ENDIF.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

...

 

...

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konth TO itab_zycbe033-c_newko.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

      itab_contas-conta = itab_zycbe033-c_newko.

      APPEND itab_contas.

* << Fim da inclusão

    ENDIF.

  ELSE.

    READ TABLE itab_zyglt316 INDEX 1.

    MOVE itab_zyglt316-konth TO itab_zycbe033-c_newko.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02

    itab_contas-conta = itab_zycbe033-c_newko.

    APPEND itab_contas.

* << Fim da inclusão

  ENDIF.

  PERFORM verify_null_field USING itab_zycbe033-c_newko

                                  'NEWKO'

                                  text-016.

ENDFORM.

...

 

...

  ENDIF.

ENDFORM.

FORM busca_contas.

  CLEAR itab_contas.

  REFRESH itab_contas.

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

  LOOP AT itab_zycbt044 WHERE tpdesp NE 'J'.

    SELECT SINGLE * FROM /pws/zycbt004

           WHERE nrseqc EQ itab_zycbt044-nrseqc

             AND tpdesp EQ itab_zycbt044-tpdesp

             AND nrparc EQ itab_zycbt044-nrparc.

    IF sy-subrc EQ 0.

      CONCATENATE '004' /pws/zycbt004-tpcontr INTO v_codevend.

      v_codauxd = /pws/zycbt004-tpdesp.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

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

  SELECT SINGLE * FROM /pws/zyglt009 WHERE bukrs = /pws/zycbt004-bukrs.

  IF /pws/zyglt009-cont_rot_sep = 'N'  AND

     /pws/zycbt004-tpdesp = 'J'        AND

     ( /pws/zycbt004-tpcontr(01) = 'A' OR

       /pws/zycbt004-tpcontr(01) = 'E' ) .

    PERFORM get_parameters_f-02_aux.

* << Fim da inclusão

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

  READ TABLE itab_zycbt044 WITH KEY tpdesp = 'J'.

  SELECT SINGLE *

         FROM /pws/zycbt004

         WHERE nrseqc EQ itab_zycbt044-nrseqc

           AND tpdesp EQ itab_zycbt044-tpdesp

           AND nrparc EQ itab_zycbt044-nrparc.

  IF sy-subrc EQ 0.

    CONCATENATE '004' /pws/zycbt004-tpcontr INTO v_codevenj.

    v_codauxj = /pws/zycbt004-tpdesp.

  ENDIF.

  SELECT * FROM /pws/zycbt012

           INTO TABLE itab_zycbt012

           WHERE codmod   = 'E'.

  IF /pws/zycbt004-tpcontr = 'A'.

    IF /pws/zycbt007-fprovisao = ' '.

      v_ktosl   = 'DSE'.

      CLEAR v_codaux1.

      IF /pws/zyglt009-provjur_moeda = 'X' AND

         /pws/zycbt004-waers = wa_zycbt007-waersa.

        CONCATENATE /pws/zycbt004-tpdesp wa_zycbt007-waersa

                    INTO v_codaux1 SEPARATED BY space.

* << Fim da exclusão

      ELSE.

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

        v_codaux1 = /pws/zycbt004-tpdesp.

      ENDIF.

      v_codaux2 = /pws/zycbt004-tpcontr.

      v_codaux3 = 'ACC'.

    ELSE.

      v_ktosl   = 'PVE'.

      v_codaux2 = /pws/zycbt004-tpcontr.

      CLEAR v_codaux1.

      IF /pws/zyglt009-provjur_moeda = 'X' AND

         /pws/zycbt004-waers = wa_zycbt007-waersa.

        CONCATENATE 'JUROS C' wa_zycbt007-waersa

                    INTO v_codaux1 SEPARATED BY space.

      ELSE.

        CONCATENATE 'JUROS' 'C' INTO v_codaux1 SEPARATED BY space.

      ENDIF.

      v_codaux3 = 'ACC'.

    ENDIF.

* << Fim da exclusão

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

    PERFORM get_parameters_f-02.

* << Fim da inclusão

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

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = itab_zycbt044-bukrs

              ktosl           = v_ktosl

              codaux1         = v_codaux1

              codaux2         = v_codaux2

              codaux3         = v_codaux3

         TABLES

              account         = itab_zyglt316

         EXCEPTIONS

              key_not_found   = 1

              rules_not_found = 2

              OTHERS          = 3.

    IF sy-subrc <> 0.

      IF sy-subrc EQ 1.

        MESSAGE i015 WITH text-127.

      ELSEIF sy-subrc EQ 2.

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko1.

      itab_contas-conta = itab_zyglt316-konts.

      APPEND itab_contas.

    ENDIF.

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                    'NEWKO'

                                    text-016.

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevenj

                                      chlanc   = 'C'

                                      tpcodaux = 'B'

                                      codaux   = /pws/zycbe043-bcooper.

    IF sy-subrc NE 0.

      CLEAR itab_zycbt012.

      READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevend

                                        chlanc   = 'C'

                                        tpcodaux = 'G'

                                        codaux   = ' '.

    ENDIF.

    itab_zycbe033-c_newko = itab_zycbt012-saknr1.

    itab_contas-conta = itab_zycbt012-saknr1.

    APPEND itab_contas.

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                   'NEWKO'

                                   text-015.

  ELSEIF /pws/zycbt004-tpcontr = 'E'.

    IF /pws/zycbt007-fprovisao = ' '.

      v_ktosl   = 'DSE'.

      CLEAR v_codaux1.

      IF /pws/zyglt009-provjur_moeda = 'X' AND

         /pws/zycbt004-waers = wa_zycbt007-waersa.

        CONCATENATE /pws/zycbt004-tpdesp wa_zycbt007-waersa

                    INTO v_codaux1 SEPARATED BY space.

      ELSE.

        v_codaux1 = /pws/zycbt004-tpdesp.

      ENDIF.

      v_codaux2 = /pws/zycbt004-tpcontr.

      v_codaux3 = 'ACE'.

    ELSE.

      v_ktosl   = 'PVE'.

      v_codaux2 = /pws/zycbt004-tpcontr.

      CLEAR v_codaux1.

      IF /pws/zyglt009-provjur_moeda = 'X' AND

         /pws/zycbt004-waers = wa_zycbt007-waersa.

        CONCATENATE 'JUROS C' wa_zycbt007-waersa

                    INTO v_codaux1 SEPARATED BY space.

      ELSE.

        CONCATENATE 'JUROS' 'C' INTO v_codaux1 SEPARATED BY space.

      ENDIF.

      v_codaux3 = 'ACE'.

    ENDIF.

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = itab_zycbt044-bukrs

              ktosl           = v_ktosl

              codaux1         = v_codaux1

              codaux2         = v_codaux2

              codaux3         = v_codaux3

         TABLES

              account         = itab_zyglt316

         EXCEPTIONS

              key_not_found   = 1

              rules_not_found = 2

              OTHERS          = 3.

    IF sy-subrc <> 0.

      IF sy-subrc EQ 1.

        MESSAGE i015 WITH text-127.

      ELSEIF sy-subrc EQ 2.

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko1.

    ENDIF.

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                    'NEWKO'

                                    text-016.

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevenj

                                      chlanc   = 'C'

                                      tpcodaux = 'B'

                                      codaux   = /pws/zycbe043-bcooper.

    IF sy-subrc NE 0.

      CLEAR itab_zycbt012.

      READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevend

                                        chlanc   = 'C'

                                        tpcodaux = 'G'

                                        codaux   = ' '.

    ENDIF.

    itab_zycbe033-c_newko = itab_zycbt012-saknr1.

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                   'NEWKO'

                                   text-015.

  ELSE.

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevend

                                      chlanc   = 'D'

                                      tpcodaux = 'G'

                                      codaux   = v_codauxd.

    LOOP AT itab_zycbt044 WHERE tpdesp NE 'J'.

    ENDLOOP.

    IF sy-subrc = 0.

      itab_zycbe033-d_newko = itab_zycbt012-saknr1.

      itab_contas-conta = itab_zycbt012-saknr1.

      APPEND itab_contas.

      PERFORM verify_null_field USING itab_zycbe033-d_newko

                                     'NEWKO'

                                      text-017.

* << Fim da exclusão

    ENDIF.

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

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevenj

                                      chlanc   = 'D'

                                      tpcodaux = 'G'

                                      codaux   = v_codauxj.

    itab_zycbe033-d_newko1 = itab_zycbt012-saknr1.

    itab_contas-conta = itab_zycbt012-saknr1.

    APPEND itab_contas.

    PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                   'NEWKO'

                                   text-016.

    CLEAR itab_zycbt012.

    READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevenj

                                      chlanc   = 'C'

                                      tpcodaux = 'B'

                                      codaux   = /pws/zycbe043-bcooper.

    IF sy-subrc NE 0.

      CLEAR itab_zycbt012.

      READ TABLE itab_zycbt012 WITH KEY codeven  = v_codevend

                                        chlanc   = 'C'

                                        tpcodaux = 'G'

                                        codaux   = ' '.

    ENDIF.

    itab_zycbe033-c_newko = itab_zycbt012-saknr1.

    itab_contas-conta = itab_zycbt012-saknr1.

    APPEND itab_contas.

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                   'NEWKO'

                                   text-015.

  ENDIF.

* << Fim da exclusão

  v_area = /pws/zycbt004-cod_area.

ENDFORM.

FORM lock_record.

  IF ( sy-tcode = '/PWS/ZYCB012_A' ) OR

     ( sy-tcode = '/PWS/ZYCB012_C' ) OR

...

 

...

      MESSAGE i015 WITH text-128.

    ENDIF.

  ELSE.

    READ TABLE itab_zyglt316 INDEX 1.

    MOVE itab_zyglt316-konts TO itab_zycbe033-d_newko1.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02_AUX

    itab_contas-conta = itab_zycbe033-d_newko1.

    APPEND itab_contas.

* << Fim da inclusão

  ENDIF.

  PERFORM verify_null_field USING itab_zycbe033-d_newko1

                                  'NEWKO'

                                  text-016.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

...

 

...

        MESSAGE i015 WITH text-128.

      ENDIF.

    ELSE.

      READ TABLE itab_zyglt316 INDEX 1.

      MOVE itab_zyglt316-konth TO itab_zycbe033-c_newko.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02_AUX

      itab_contas-conta = itab_zycbe033-c_newko.

      APPEND itab_contas.

* << Fim da inclusão

    ENDIF.

  ELSE.

    READ TABLE itab_zyglt316 INDEX 1.

    MOVE itab_zyglt316-konth TO itab_zycbe033-c_newko.

* >> Início da inclusão: FORM GET_PARAMETERS_F-02_AUX

    itab_contas-conta = itab_zycbe033-c_newko.

    APPEND itab_contas.

* << Fim da inclusão

  ENDIF.

  PERFORM verify_null_field USING itab_zycbe033-c_newko

                                  'NEWKO'

                                  text-016.

ENDFORM.