Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina de Pagamento
Data/Hora da Publicação: 11/05/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 13:57:11
Descrição da Nota: COMPLEMENTO DO BOLETO - COMISSAO
Sintoma
No complemento do boleto, contabilizando a Comissão de contrato PT:
1- Levar a informação "Centro" para a Table Control.
2- Mapear a contabilização para informar o Local de Negócio nas partidas.
3- Mesmo alterando os campos no complemento do boleto, o documento não está sendo recontabilizando.
4- Estorno, o documento está apenas pré-editado, não deve fazer a FB08, apenas a FBV0.
Solução
1- Foi adicionado código para enviar o campo centro para a table control.
2- O campo local de negócio foi adicionado ao batch input.
3- O programa trata de maneira incorreta quando os dados do complemento sao alterados.
4- O programa trata o documento de IR de maneira incorreta, gerando os erros na fb08 e fbv0.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03661 Data: 11/05/2007 Hora: 13:45:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03661
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00165
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02500 - 00001 - 6.0 - 00025 - CONTABILIZAÇÃO DE COMISSÃO DE CONTRATO PARA PRÉ-PAGAMENTO
----------------------------------------------------------------------------------------------------
COMPLEMENTO DO BOLETO - COMISSAO
----------------------------------------------------------------------------------------------------
Palavras Chave:
COMPLEMENTO DO BOLETO - COMISSAO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_51D
FUNC /PWS/ZYCB_TRANSACAO_F_63
REPS /PWS/MZYCB110F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51D
...
'BKPF-BLART' t_dados-blart,
'BKPF-BUKRS' v_bukrs,
'BKPF-BUDAT' v_budat,
'BKPF-MONAT' v_periodo,
'BKPF-WAERS' t_dados-waers,
'BKPF-KURSF' v_kursf,
'BKPF-XBLNR' t_dados-xblnr,
'BKPF-BKTXT' t_dados-bktxt,
'RF05A-AUGTX' t_dados-augtx,
v_xpos_comp 'X',
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_51D
'BKPF-BRNCH' t_dados-brnch,
* << Fim da inclusão
'BDC_OKCODE' '=SL'.
write WA_zycbt089-num_selecao to v_selecao.
if v_selecao gt v_xpos_belnr .
shift v_xpos_belnr left deleting leading '0'.
perform bdc_screen using 'SAPMF05A' '0710'.
concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.
perform bdc_field using:
'RF05A-AGKON' t_dados-agkon,
'RF05A-AGUMS' t_dados-agums,
'RF05A-AGKOA' t_dados-agkoa,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63
...
'BSEG-SGTXT' t_dados-c_sgtxt,
'RF05V-NEWBS' '40'.
IF NOT ( t_dados-newbs IS INITIAL ).
PERFORM bdc_field USING 'RF05V-NEWBS' t_dados-newbs.
ENDIF.
PERFORM bdc_field USING 'RF05V-NEWKO' t_dados-d_newko.
IF NOT ( t_dados-umskz IS INITIAL ) .
PERFORM bdc_field USING 'RF05V-NEWUM' t_dados-umskz.
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_63
clear lfbw.
* << Fim da inclusão
SELECT SINGLE * FROM lfbw WHERE lifnr = t_dados-agkon
AND bukrs = t_dados-bukrs.
IF lfbw-wt_subjct = 'X'.
PERFORM bdc_screen USING 'SAPLFWTD' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
ENDIF.
IF v_predic EQ 'X'.
PERFORM bdc_screen USING 'SAPLF040' '0302'.
PERFORM bdc_field USING:
'BSEG-WRBTR' v_wrbtr,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB110F01
...
CLEAR itab_zycbt031_tc.
SELECT SINGLE * FROM /pws/zycbt002
WHERE nrseqc = itab_zycbt064-nrchave
AND tpparc = itab_zycbt064-tpparc
AND nrparc = itab_zycbt064-nrparc.
IF sy-subrc = 0.
itab_zycbt031_tc-dtvencto = /pws/zycbt002-dtvencto.
itab_zycbt031_tc-tpparc = /pws/zycbt002-tpparc.
itab_zycbt031_tc-nrparc = /pws/zycbt002-nrparc.
itab_zycbt031_tc-dtincl = /pws/zycbt002-dtinicio.
* >> Início da inclusão: FORM CARREGA_DADOS_EO
itab_zycbt031_tc-werks = /pws/zycbt002-KOSTL.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycbt001 INTO /pws/zycbt001
WHERE nrseqc = /pws/zycbt002-nrseqc.
IF sy-subrc EQ 0.
itab_zycbt031_tc-gsber = /pws/zycbt001-gsber.
itab_zycbt031_tc-nrpagto = /pws/zycbt001-nrcontr.
itab_zycbt031_tc-bukrs = /pws/zycbt001-bukrs.
ENDIF.
IF itab_zycbt064-vlmi GT 0.
itab_zycbt031_tc-v_vlmi = itab_zycbt064-vlmi.
ELSE.
...
...
ENDIF.
IF /pws/zycbe031-belnr_pi IS INITIAL AND sy-index EQ 2.
CONTINUE.
ENDIF.
PERFORM reverse_document_fbv0_eo.
ENDDO.
ENDIF.
ELSEIF /pws/zycbe031-statusp EQ 'C'.
READ TABLE itab_zycbt133 WITH KEY codmod = 'E'.
IF sy-subrc = 0
* >> Início da exclusão: FORM CONTABILIZA_EO
AND itab_zycbt133-vaprov = 'X'
* << Fim da exclusão
AND itab_zycbt133-vclear = 'X'.
IF /pws/zycbe031-tpparc EQ 'C'.
PERFORM executa_estorno.
CHECK erro_bi IS INITIAL.
DO 2 TIMES.
IF sy-index EQ 1.
v_doc = /pws/zycbe031-belnr_p.
ELSE.
v_doc = /pws/zycbe031-belnr_pi.
ENDIF.
...
...
itab_zycbe033-d_kostl = itab_zycbt002-kostl.
itab_zycbe033-c_kostl = itab_zycbt002-kostl.
itab_zycbe033-d_prctr = itab_zycbt002-prctr.
itab_zycbe033-c_prctr = itab_zycbt002-prctr.
itab_zycbe033-d_fipos = itab_zycbt002-fipos.
itab_zycbe033-c_fipos = itab_zycbt002-fipos.
itab_zycbe033-d_fictr = itab_zycbt002-fictr.
itab_zycbe033-c_fictr = itab_zycbt002-fictr.
ENDIF.
PERFORM preenche_dados_batch.
* >> Início da inclusão: FORM FILL_DATE_F_63_EO
IF itab_zycbe033-brnch IS INITIAL.
SELECT SINGLE * FROM t001w WHERE werks = itab_zycbt002-kostl.
IF sy-subrc EQ 0.
PERFORM verifica_pais_filial USING /pws/zycbt001-bukrs
t001w-j_1bbranch.
itab_zycbe033-brnch = t001w-j_1bbranch.
ENDIF.
ENDIF.
* << Fim da inclusão
IF sy-index EQ 1.
PERFORM verify_null_field USING /pws/zycbe031-vlme
'VLME'
text-013.
itab_zycbe033-wrbtr = /pws/zycbe031-vlme.
PERFORM verify_null_field USING /pws/zycbe031-vlmi
'VLMI'
text-013.
itab_zycbe033-dmbtr = /pws/zycbe031-vlmi.
ELSE.
* >> Início da inclusão: FORM FILL_DATE_F_63_EO
check not itab_zycbt002-BELNR_IR_COMP is initial.
* << Fim da inclusão
PERFORM verify_null_field USING /pws/zycbe031-vlir
'VLME'
text-013.
itab_zycbe033-wrbtr = /pws/zycbe031-vlir.
PERFORM verify_null_field USING /pws/zycbe031-vlmiir
'VLMI'
text-013.
itab_zycbe033-dmbtr = /pws/zycbe031-vlmiir.
ENDIF.
APPEND itab_zycbe033.
...
...
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_zycbt032 WITH KEY tcode = text-248
tabela = text-249
cpochv = /pws/zycbe031-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
IF sy-index EQ 1.
/pws/zycbe031-belnr_p = itab_zycbt032-belnr.
* >> Início da inclusão: FORM FILL_DATE_F_63_EO
itab_zycbt031-dtcredpr = /pws/zycbe031-dtcredpr.
* << Fim da inclusão
ELSE.
/pws/zycbe031-belnr_pi = itab_zycbt032-belnr.
ENDIF.
/pws/zycbe031-statusp = 'C'.
itab_zycbt031-v_process = 'X'.
MODIFY /pws/zycbt031 FROM /pws/zycbe031.
MODIFY itab_zycbt031 TRANSPORTING v_process
* >> Início da inclusão: FORM FILL_DATE_F_63_EO
dtcredpr
* << Fim da inclusão
WHERE nrseq = /pws/zycbe031-nrseq.
READ TABLE itab_zycbt133 WITH KEY codmod = 'E'.
IF sy-subrc = 0.
* >> Início da exclusão: FORM FILL_DATE_F_63_EO
IF itab_zycbt133-vaprov = 'X'.
* << Fim da exclusão
PERFORM executa_aprovacao.
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_F_63_EO
ENDIF.
* << Fim da exclusão
IF sy-index EQ 1.
itab_zycbt002-dtpagto = /pws/zycbe031-dtcredpr.
ELSE.
itab_zycbt002-dtpagtoir = /pws/zycbe031-dtcredir.
ENDIF.
IF /pws/zycbt074-fpagto_comis EQ 'L' AND
itab_zycbt002-flat NE 'X'.
PERFORM executa_f51_eo.
ENDIF.
MODIFY itab_zycbt002 TRANSPORTING belnr_comp dtpagto
...
...
MESSAGE e261(sf) WITH '/PWS/ZYCB001_E'.
ENDIF.
ENDFORM.
FORM anula_compens_com USING p_doc.
CLEAR v_erro_anulacomp.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = text-104.
itab_zycbe033-tabela = '/PWS/ZYCBT031'.
itab_zycbe033-cpochv = /pws/zycbe031-nrseq.
itab_zycbe033-belnr = p_doc.
* >> Início da inclusão: FORM ANULA_COMPENS_COM
check not itab_zycbe033-belnr is initial.
* << Fim da inclusão
PERFORM verify_null_field USING /pws/zycbe031-bukrs
'BUKRS'
text-010.
itab_zycbe033-bukrs = /pws/zycbe031-bukrs.
IF sy-index EQ 1.
* >> Início da exclusão: FORM ANULA_COMPENS_COM
itab_zycbe033-bldat = /pws/zycbe031-dtcredpr.
itab_zycbe033-budat = /pws/zycbe031-dtcredpr.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_COMPENS_COM
itab_zycbe033-bldat = itab_zycbT031-dtcredpr.
itab_zycbe033-budat = itab_zycbT031-dtcredpr.
* << Fim da inclusão
ELSE.
itab_zycbe033-bldat = /pws/zycbe031-dtcredir.
itab_zycbe033-budat = /pws/zycbe031-dtcredir.
ENDIF.
PERFORM determina_periodo USING itab_zycbe033-budat
/pws/zycbe031-bukrs
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
/pws/zycbe031-bukrs
CHANGING v_ano.
...
...
itab_zycbe033-c_valut = /pws/zycbe031-dtboleto.
ENDCASE.
ENDCASE.
ENDLOOP.
ENDFORM.
FORM executa_f51_eo.
itab_zycbe033-tcode = text-066.
itab_zycbe033-tabela = text-253.
itab_zycbe033-cpochv = itab_zycbt002-nrseqc.
PERFORM preenche_dados_batch.
* >> Início da inclusão: FORM EXECUTA_F51_EO
IF itab_zycbe033-brnch IS INITIAL.
SELECT SINGLE * FROM t001w WHERE werks = itab_zycbt002-kostl.
IF sy-subrc EQ 0.
PERFORM verifica_pais_filial USING /pws/zycbt001-bukrs
t001w-j_1bbranch.
itab_zycbe033-brnch = t001w-j_1bbranch.
ENDIF.
ENDIF.
* << Fim da inclusão
itab_zycbe033-d_kostl = itab_zycbt002-kostl.
itab_zycbe033-c_kostl = itab_zycbt002-kostl.
itab_zycbe033-d_prctr = itab_zycbt002-prctr.
itab_zycbe033-c_prctr = itab_zycbt002-prctr.
itab_zycbe033-d_fipos = itab_zycbt002-fipos.
itab_zycbe033-c_fipos = itab_zycbt002-fipos.
itab_zycbe033-d_fictr = itab_zycbt002-fictr.
itab_zycbe033-c_fictr = itab_zycbt002-fictr.
PERFORM verify_null_field USING v_agkon
'AGKON'
...
...
AND nrparc = /pws/zycbe031-nrparc
AND tpparc = /pws/zycbe031-tpparc.
ENDFORM.
FORM estorna_lancamento USING p_docto.
CLEAR v_erro_anulacomp.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = text-103.
itab_zycbe033-tabela = '/PWS/ZYCBT031'.
itab_zycbe033-cpochv = /pws/zycbe031-nrseq.
itab_zycbe033-belnr = p_docto.
* >> Início da inclusão: FORM ESTORNA_LANCAMENTO
check not itab_zycbe033-belnr is initial.
* << Fim da inclusão
PERFORM verify_null_field USING /pws/zycbe031-bukrs
'BUKRS'
text-010.
itab_zycbe033-bukrs = /pws/zycbe031-bukrs.
IF sy-index EQ 1.
* >> Início da exclusão: FORM ESTORNA_LANCAMENTO
itab_zycbe033-bldat = /pws/zycbe031-dtcredpr.
itab_zycbe033-budat = /pws/zycbe031-dtcredpr.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_LANCAMENTO
itab_zycbe033-bldat = itab_zycbT031-dtcredpr.
itab_zycbe033-budat = itab_zycbT031-dtcredpr.
* << Fim da inclusão
ELSE.
itab_zycbe033-bldat = /pws/zycbe031-dtcredir.
itab_zycbe033-budat = /pws/zycbe031-dtcredir.
ENDIF.
PERFORM determina_periodo USING itab_zycbe033-budat
/pws/zycbe031-bukrs
CHANGING v_monat.
PERFORM determina_ano USING itab_zycbe033-budat
/pws/zycbe031-bukrs
CHANGING v_ano.
...