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.
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.