Módulo: CÂMBIO FINANCEIRO
Funcionalidade: Rotina de Pagamento
Data/Hora da Publicação: 06/08/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 14:03:30
Descrição da Nota: SAÍDA DE PAGAMENTO - ANO FISCAL - REMESSA COM ORIGEM E OUTROS
Sintoma
Ao efetuar a saída de pagamento de uma remessa com origem, onde precisa desmembrar o item.Na (f-51),
esta lançando chave de referência com ano 2009, mas o correto é 2010, devido o ano fiscal da
empresa.
Solução
Incluir em todos os pontos que fixam o ano contábil do documento com os 4 primeiros dígitos da data
de lançamento, a busca deste ano pela função obtem_ano_contabil. Isso irá ajustar a busca da chave
de referência(awkey).
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08791 Data: 06/08/2009 Hora: 16:55:22
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08791
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00109
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03628 - 00001 - 7.0 - 00001 - SAÍDA DE PAGAMENTO - FINANCIAMENTO - APROVAÇÃO NÃO AUTOMÁTICA
03702 - 00002 - 7.0 - 00001 - SAIDA DE PAGAMENTO - EMPRESTIMO PRÉ EDITADO
05727 - 00003 - 7.0 - 00004 - BUSCA EVENTOS NA ZYGL011 POR EMPRESA
05890 - 00004 - 7.0 - 00004 - SAÍDA DE PAGAMENTO - LOCAL DE NEGÓCIO - BUPLA - F-51 - F-53
06077 - 00005 - 7.0 - 00004 - DESPESAS DE EXPORTAÇÃO
----------------------------------------------------------------------------------------------------
SAÍDA DE PAGAMENTO - ANO FISCAL - REMESSA COM ORIGEM E OUTROS
----------------------------------------------------------------------------------------------------
Palavras Chave:
SAÍDA DE PAGAMENTO ANO FISCAL REMESSA COM ORIGEM E OUTROS
GJHAR AWKEY CHAVE DE REFERÊNCIA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB115F01
REPS /PWS/MZYCB115F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB115F01
...
SELECT *
FROM /pws/zycbt118
INTO /pws/zycbt118
WHERE nrseq = itab_zycbt134-nrcorresp AND
codmod = 'E'.
ENDSELECT.
v_dtcredpr = /pws/zycbt118-dtincl.
ELSEIF itab_zycbt134-mdcorresp = 'IA'.
v_dtcredpr = itab_zycbt031-dtcredpr.
ENDIF.
* >> Início da inclusão: FORM EXECUTA_BATCH
perform determina_ano using v_dtcredpr
itab_zycbt031-bukrs
changing v_ano.
* << Fim da inclusão
SELECT augbl
FROM bseg
INTO /pws/zycbt145-belnr_saida
WHERE bukrs = itab_zycbt031-bukrs AND
belnr = itab_zycbt031-belnr_p AND
* >> Início da exclusão: FORM EXECUTA_BATCH
gjahr = v_dtcredpr(4) AND
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_BATCH
gjahr = v_ano and
* << Fim da inclusão
shkzg = 'H'.
ENDSELECT.
UPDATE /pws/zycbt145 SET
belnr_saida = /pws/zycbt145-belnr_saida
WHERE nrseq = itab_zycbt134-nrseq.
ENDIF.
ELSEIF itab_zycbt134-tpproc = 'C' OR
itab_zycbt134-tpproc(4) = 'CIDE'.
itab_zycbt134-statusp_cide = text-079.
itab_zycbt134-belnr_cide = itab_zycbt032-belnr.
...
...
CLEAR /pws/zycbt154-dtcont.
SELECT dtcont
UP TO 1 ROWS
FROM /pws/zycbt154
INTO /pws/zycbt154-dtcont
WHERE codmod EQ 'I' AND
codmodul EQ 'T' AND
nrcorresp EQ itab_zycbt031-nrcorresp AND
belnr_cl EQ itab_zycbt036-belnr.
ENDSELECT.
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
perform determina_ano using /pws/zycbt154-dtcont
itab_zycbt134-bukrs
changing v_ano.
* << Fim da inclusão
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
* >> Início da exclusão: FORM EXECUTA_CLEARING_FINANC
gjahr EQ /pws/zycbt154-dtcont(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ELSE.
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
perform determina_ano using /pws/zycbt112-dtdesem
itab_zycbt134-bukrs
changing v_ano.
* << Fim da inclusão
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
* >> Início da exclusão: FORM EXECUTA_CLEARING_FINANC
gjahr EQ /pws/zycbt112-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ENDIF.
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.
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
perform determina_ano using itab_zycbt031-dtcredpr
itab_zycbt134-bukrs
changing v_ano.
* << Fim da inclusão
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
* >> Início da exclusão: FORM EXECUTA_CLEARING_FINANC
gjahr EQ itab_zycbt031-dtcredpr(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_FINANC
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
IF itab_zycbt031-tpparc = 'J'.
itab_zycbe033-d_newko = itab_zycbt134-bcocred.
ELSE.
v_evento = vcodeven.
ENDIF.
IF itab_zycbt031-tpparc EQ 'P'.
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
...
...
CLEAR /pws/zycbt154-dtcont.
SELECT dtcont
UP TO 1 ROWS
FROM /pws/zycbt154
INTO /pws/zycbt154-dtcont
WHERE codmod EQ 'F' AND
codmodul EQ 'T' AND
nrcorresp EQ itab_zycbt031-nrcorresp AND
belnr_cl EQ itab_zycbt036-belnr.
ENDSELECT.
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
perform determina_ano using /pws/zycbt154-dtcont
/pws/zycbt128-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt036-belnr AND
bukrs EQ /pws/zycbt128-bukrs AND
* >> Início da exclusão: FORM EXECUTA_CLEARING_EMP
gjahr EQ /pws/zycbt154-dtcont(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ELSE.
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
perform determina_ano using /pws/zycbt128-dtdesem
/pws/zycbt128-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt036-belnr AND
bukrs EQ /pws/zycbt128-bukrs AND
* >> Início da exclusão: FORM EXECUTA_CLEARING_EMP
gjahr EQ /pws/zycbt128-dtdesem(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ENDIF.
APPEND itab_zycbt036.
itab_zycbt036-tcode = text-213.
itab_zycbt036-tabela = text-227.
itab_zycbt036-cpochv = itab_zycbt134-nrseq.
itab_zycbt036-belnr = itab_zycbt134-belnr_p.
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
perform determina_ano using itab_zycbt031-dtcredpr
itab_zycbt134-bukrs
changing v_ano.
* << Fim da inclusão
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
* >> Início da exclusão: FORM EXECUTA_CLEARING_EMP
gjahr EQ itab_zycbt031-dtcredpr(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_EMP
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
IF itab_zycbt031-tpparc = 'J'.
itab_zycbe033-d_newko = itab_zycbt134-bcocred.
ELSE.
READ TABLE itab_zycbt012c WITH KEY codeven = vcodeven
codmod = 'F'
codaux = /pws/zycbt128-tpemprest
codaux2 = v_prazo.
itab_zycbe033-d_newko = itab_zycbt012c-saknr1.
...
...
AND bukrs = itab_zycbt134-bukrs.
ENDSELECT.
itab_zycbe033-agums = /pws/zycbt011-agums.
itab_zycbe033-d_newko = itab_zycbt124-recrem.
itab_zycbe033-agkon = itab_zycbt124-recrem.
PERFORM verify_null_field USING itab_zycbe033-agkon
'AGKON'
text-061.
itab_zycbe033-agkoa = /pws/zycbt011-koart.
itab_zycbe033-belnr = wa_zycbt031-belnr_p.
* >> Início da inclusão: FORM CLEARING_CP_PRINC
perform determina_ano using wa_zycbt031-dtcredpr
wa_zycbt031-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbe033-awkey
WHERE belnr EQ wa_zycbt031-belnr_p AND
bukrs EQ wa_zycbt031-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRINC
gjahr EQ wa_zycbt031-dtcredpr(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRINC
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
LOOP AT itab_zycbt124 WHERE nrseq = itab_zycbt134-nrcorresp.
itab_zycbt036-tcode = 'F-51'.
itab_zycbt036-tabela = '/PWS/ZYCBT119'.
itab_zycbt036-cpochv = wa_zycbt031-nrseq.
itab_zycbt036-belnr = itab_zycbt124-belnr.
* >> Início da inclusão: FORM CLEARING_CP_PRINC
perform determina_ano using itab_zycbt124-dtdocto
itab_zycbt124-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt124-belnr AND
bukrs EQ itab_zycbt124-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRINC
gjahr EQ itab_zycbt124-dtdocto(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRINC
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
ENDLOOP.
PERFORM verify_null_field USING itab_zycbt124-bukrs
'BUKRS'
text-010.
itab_zycbe033-bukrs = itab_zycbt124-bukrs.
PERFORM verify_null_field USING itab_zycbt124-waers
'WAERS'
text-011.
...
...
ENDSELECT.
itab_zycbe033-agkoa = /pws/zycbt011-koart.
itab_zycbe033-agums = /pws/zycbt011-agums.
ENDIF.
IF itab_zycbt124-irfat EQ 'S'.
itab_zycbe033-belnr = wa_zycbt031-belnr_p.
itab_zycbt036-tcode = 'F-51'.
itab_zycbt036-tabela = '/PWS/ZYCBT119'.
itab_zycbt036-cpochv = wa_zycbt031-nrseq.
itab_zycbt036-belnr = wa_zycbt031-belnr_pi.
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
perform determina_ano using wa_zycbt031-dtcredir
wa_zycbt031-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ wa_zycbt031-belnr_pi AND
bukrs EQ wa_zycbt031-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr EQ wa_zycbt031-dtcredir(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
ELSE.
IF sy-index NE 2.
itab_zycbe033-belnr = wa_zycbt031-belnr_p.
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
perform determina_ano using wa_zycbt031-dtcredir
wa_zycbt031-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbe033-awkey
WHERE belnr EQ wa_zycbt031-belnr_p AND
bukrs EQ wa_zycbt031-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr EQ wa_zycbt031-dtcredpr(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ELSE.
itab_zycbe033-belnr = wa_zycbt031-belnr_pi.
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
perform determina_ano using wa_zycbt031-dtcredir
wa_zycbt031-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbe033-awkey
WHERE belnr EQ wa_zycbt031-belnr_pi AND
bukrs EQ wa_zycbt031-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr EQ wa_zycbt031-dtcredir(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
ENDIF.
ENDIF.
LOOP AT itab_zycbt124 WHERE nrseq = itab_zycbt134-nrcorresp.
itab_zycbt036-tcode = 'F-51'.
itab_zycbt036-tabela = '/PWS/ZYCBT119'.
itab_zycbt036-cpochv = wa_zycbt031-nrseq.
itab_zycbt036-belnr = itab_zycbt124-belnr.
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
perform determina_ano using itab_zycbt124-dtdocto
itab_zycbt124-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt124-belnr AND
bukrs EQ itab_zycbt124-bukrs AND
* >> Início da exclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr EQ itab_zycbt124-dtdocto(4).
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING_CP_PRIN_IR_CIDE
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
ENDLOOP.
PERFORM verify_null_field USING itab_zycbt124-bukrs
'BUKRS'
text-010.
itab_zycbe033-bukrs = itab_zycbt124-bukrs.
IF wa_zycbt031-contabreal IS INITIAL.
itab_zycbe033-waers = itab_zycbt124-waers.
ELSE.
...
...
CLEAR itab_zycbe033-belnr.
CLEAR itab_zycbe033-awkey.
itab_zycbe033-dmbtr = ' '.
MODIFY itab_zycbe033 INDEX 1.
DELETE itab_zycbe033 INDEX 2.
LOOP AT itab_zycbt124 WHERE nrseq = itab_zycbt134-nrcorresp.
itab_zycbt036-tcode = 'F-51'.
itab_zycbt036-tabela = '/PWS/ZYCBT119'.
itab_zycbt036-cpochv = wa_zycbt031-nrseq.
itab_zycbt036-belnr = itab_zycbt124-belnr.
* >> Início da inclusão: FORM EXECUTA_CLEARING_CIDE_CP
perform determina_ano using itab_zycbt124-dtdocto
itab_zycbt124-bukrs
changing v_ano.
* << Fim da inclusão
SELECT awkey
UP TO 1 ROWS
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr EQ itab_zycbt124-belnr AND
bukrs EQ itab_zycbt124-bukrs AND
* >> Início da exclusão: FORM EXECUTA_CLEARING_CIDE_CP
gjahr EQ itab_zycbt124-dtdocto(4).
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_CLEARING_CIDE_CP
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
APPEND itab_zycbt036.
ENDLOOP.
CONCATENATE 'R' itab_zycbt124-nrseq+1(9) 'C' INTO v_zuonr.
IF itab_zycbt034[] IS INITIAL AND erro_bi IS INITIAL.
CALL FUNCTION '/PWS/ZYCA_TRANSACAO_F_51C'
EXPORTING
v_modo = v_modo_bi
v_zuonr = v_zuonr
TABLES
...
...
WITH KEY koart = 'C'
shkzg = 'C'.
itab_zycbe033-newbs = itab_zycat027-bschl.
v_koart_bi = 'C'.
v_shkzg_bi = 'C'.
itab_zycbe033-agkoa = 'D'.
ENDIF.
ENDIF.
v_buzei = itab_zycbt124-buzei.
itab_zycbe033-belnr = itab_zycbt124-belnr.
* >> Início da inclusão: FORM DESMEMBRA_DOCTO_PROVISAO_CP
perform determina_ano using itab_zycbt124-dtdocto
itab_zycbt124-bukrs
changing v_ano.
* << Fim da inclusão
SELECT budat kursf awkey
UP TO 1 ROWS
FROM bkpf
INTO (itab_zycbe033-dtdocto,itab_zycbe033-kursf,
itab_zycbe033-awkey)
WHERE bukrs EQ itab_zycbt124-bukrs AND
belnr EQ itab_zycbt124-belnr AND
* >> Início da exclusão: FORM DESMEMBRA_DOCTO_PROVISAO_CP
gjahr EQ itab_zycbt124-dtdocto(4).
* << Fim da exclusão
* >> Início da inclusão: FORM DESMEMBRA_DOCTO_PROVISAO_CP
gjahr eq v_ano.
* << Fim da inclusão
ENDSELECT.
itab_zycbe033-c_gsber = itab_zycbt124-gsber.
itab_zycbe033-d_gsber = itab_zycbt124-gsber.
IF NOT itab_zycbt124-j_1bbranch IS INITIAL.
PERFORM verifica_pais_filial USING itab_zycbt124-bukrs
itab_zycbt124-j_1bbranch.
itab_zycbe033-brnch = itab_zycbt124-j_1bbranch.
ELSE.
CLEAR t001w.
SELECT SINGLE j_1bbranch FROM t001w INTO t001w-j_1bbranch
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB115F02
...
IF NOT itab_zycbt226-dtlancto2 IS INITIAL.
v_dt_taxa = itab_zycbt226-dtlancto2.
ELSE.
v_dt_taxa = itab_zycbt226-dtlancto.
ENDIF.
WHEN 'DTCREDEXT'.
v_dt_taxa = itab_zycbt226-dtcredext.
WHEN 'TXFAT'.
IF NOT wa_zycbt030-belnr IS INITIAL AND
NOT wa_zycet001-dtemb IS INITIAL.
* >> Início da inclusão: FORM DEFINE_TAXA_CAMBIO
perform determina_ano using wa_zycet001-dtemb
itab_zycbt226-bukrs
changing v_ano.
* << Fim da inclusão
SELECT SINGLE kursf FROM bkpf INTO p_kursf
WHERE bukrs = itab_zycbt226-bukrs
AND belnr = wa_zycbt030-belnr
* >> Início da exclusão: FORM DEFINE_TAXA_CAMBIO
AND gjahr = wa_zycet001-dtemb(4).
* << Fim da exclusão
* >> Início da inclusão: FORM DEFINE_TAXA_CAMBIO
and gjahr = v_ano.
* << Fim da inclusão
IF sy-subrc = 0.
...
...
PERFORM busca_conta_bco_me_mi USING 'C'
itab_zycbe033-bukrs
itab_zycbt232_assoc-bco_mi
space
CHANGING itab_zycbe033-c_newko.
PERFORM busca_conta_bco_me_mi USING 'D'
itab_zycbe033-bukrs
itab_zycbt226-bco_me
itab_zycbt226-waers
CHANGING itab_zycbe033-d_newko.
* >> Início da inclusão: FORM LANCA_BANCO_MI_ME
perform determina_ano using itab_zycbt232_assoc-dtlancto_bco
itab_zycbt232_assoc-bukrs
changing v_ano.
* << Fim da inclusão
SELECT SINGLE bschl hkont FROM bseg INTO (bseg-bschl,bseg-hkont)
WHERE bukrs = itab_zycbt232_assoc-bukrs
AND belnr = itab_zycbt232_assoc-belnr_bco
* >> Início da exclusão: FORM LANCA_BANCO_MI_ME
AND gjahr = itab_zycbt232_assoc-dtlancto_bco(4)
* << Fim da exclusão
AND buzei = '002'.
IF sy-subrc = 0 AND
bseg-hkont = itab_zycbe033-c_newko AND
bseg-bschl = '50'.
...