Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 18/06/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:42:19
Descrição da Nota: TRATAMENTO PARA CONTA BLOQUEADA NA RECLASSIFICAÇÃO DE IA
Sintoma
Ao realizar a reclassificação de IA caso a conta esteja bloqueada o sistema permite que seja feita a
F-05 mas não permite realizar a F-51 e nem estornar o documento gerado pela F05, perdendo assim o
documento já que este não é salvo na DI.
Solução
Atualização do programa da DI para no momento de gerar a variação cambial e a conta estiver sendo
utilizada, o sistema salve a F05 e quando a conta estiver liberada ao salvar a DI novamente o
sistema estorne a F05 gerando um novo docuemnto e compensando em seguida.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03954 Data: 18/06/2007 Hora: 12:09:12
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03954
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03824 - 00001 - 7.0 - 00001 - AJUSTE PARA LIMPAR AS TABELAS INTERNAS COM LIXO PARA LANÇAR MATUS
----------------------------------------------------------------------------------------------------
TRATAMENTO PARA CONTA BLOQUEADA NA RECLASSIFICAÇÃO DE IA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONTA - BLOQUEADA - RECLASSIFICAÇÃO - IA - DI
/PWS/SAPMZYCI023
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RECLASSIFICACAO_IA
REPS /PWS/LZYCIGF2F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F04
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RECLASSIFICACAO_IA
...
INCLUDE STRUCTURE /pws/zycit132.
DATA: END OF itab_zycit132.
DATA:
itab_zycit094 TYPE /pws/zycie094 OCCURS 0 WITH HEADER LINE,
itab_zycit006 TYPE /pws/zycit006 OCCURS 0 WITH HEADER LINE,
itab_matuse_aux3 LIKE itab_matuse_aux OCCURS 0 WITH HEADER LINE,
itab_zycit263 TYPE /pws/zycit263 OCCURS 0 WITH HEADER LINE,
v_gjahr TYPE bsis-gjahr,
v_tntgew TYPE /pws/zycie003-ntgew,
v_rec_ia TYPE i.
* >> Início da inclusão:
REFRESH: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,
itab_bsis.
CLEAR: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,
itab_bsis.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit042
WHERE nrseq EQ i_zycit001-nrseq.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041
WHERE nrseq EQ /pws/zycit042-nrseqnf AND
( belnr_mr1m NE space OR
mblnr_mb01 NE space OR
belnr_f_51 NE space OR
belnr_f_02 NE space OR
belnrf02fre NE space ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2F01
...
tabela = '/PWS/ZYCIT044'
cpochv = /pws/zycie085-nrseqdi
tpmsg = 'S'.
IF sy-subrc = 0.
CLEAR: v_belnrf05.
LOOP AT itab_matuse_aux WHERE
hkont = itab_matuse_aux2-hkont.
IF itab_matuse_aux-j_1bmatuse = 0.
/pws/zycie085-belnr_0_f05 = p_zycbt032-belnr.
v_belnrf05 = /pws/zycie085-belnr_0_f05.
* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO
/pws/zycie085-budat_0 = sy-datlo.
* << Fim da inclusão
ELSEIF itab_matuse_aux-j_1bmatuse = 1.
/pws/zycie085-belnr_1_f05 = p_zycbt032-belnr.
v_belnrf05 = /pws/zycie085-belnr_1_f05.
* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO
/pws/zycie085-budat_1 = sy-datlo.
* << Fim da inclusão
ELSEIF itab_matuse_aux-j_1bmatuse = 2.
/pws/zycie085-belnr_2_f05 = p_zycbt032-belnr.
v_belnrf05 = /pws/zycie085-belnr_2_f05.
* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO
/pws/zycie085-budat_2 = sy-datlo.
* << Fim da inclusão
ELSEIF itab_matuse_aux-j_1bmatuse = 3.
/pws/zycie085-belnr_3_f05 = p_zycbt032-belnr.
v_belnrf05 = /pws/zycie085-belnr_3_f05.
* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO
/pws/zycie085-budat_3 = sy-datlo.
* << Fim da inclusão
ENDIF.
ENDLOOP.
UPDATE /pws/zycit085 SET belnr_0_f05 = /pws/zycie085-belnr_0_f05
belnr_1_f05 = /pws/zycie085-belnr_1_f05
belnr_2_f05 = /pws/zycie085-belnr_2_f05
belnr_3_f05 = /pws/zycie085-belnr_3_f05
* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO
budat_0 = /pws/zycie085-budat_0
budat_1 = /pws/zycie085-budat_1
budat_2 = /pws/zycie085-budat_2
budat_3 = /pws/zycie085-budat_3
* << Fim da inclusão
WHERE nrseqdi = /pws/zycie085-nrseqdi.
COMMIT WORK.
ELSE.
LOOP AT p_zycbt032.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT p_zycbt032.
ENDLOOP.
ENDIF.
...
...
p_zycit003 STRUCTURE /pws/zycit003
p_zycit006 STRUCTURE /pws/zycit006
USING p_zycbt007 STRUCTURE /pws/zycbt007
p_zycit001 STRUCTURE /pws/zycit001
v_modo.
.
DATA: itab_zycbe033 TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,
itab_zycbt011 TYPE /pws/zycbt011 OCCURS 10 WITH HEADER LINE,
itab_zycbt036 TYPE /pws/zycbt036 OCCURS 10 WITH HEADER LINE,
v_ano TYPE t001b-frye1,
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
v_estorno TYPE c,
* << Fim da inclusão
v_sgtxt TYPE bseg-sgtxt,
v_zuonr TYPE bseg-zuonr,
v_xblnr TYPE bkpf-xblnr,
v_bktxt TYPE bkpf-bktxt.
FREE: itab_zycbe033, itab_contas, itab_zycbt036.
CLEAR: itab_zycbe033, itab_contas, itab_zycbt036.
SELECT SINGLE * FROM /pws/zycbt011 INTO itab_zycbt011
WHERE codmod = 'D'.
READ TABLE itab_zycbt011 WITH KEY codeven = '001VM'.
itab_zycbe033-mandt = sy-mandt.
...
...
belnr_3 = /pws/zycie085-belnr_3
budat_0 = /pws/zycie085-budat_0
budat_1 = /pws/zycie085-budat_1
budat_2 = /pws/zycie085-budat_2
budat_3 = /pws/zycie085-budat_3
WHERE nrseqdi = /pws/zycie085-nrseqdi.
COMMIT WORK.
v_rec_ia_1 = v_rec_ia_1 + 1.
DELETE itab_bsis_aux WHERE hkont = itab_matuse_aux2-hkont.
ELSE.
* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO
READ TABLE p_zycbt032 WITH KEY tpmsg = 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
READ TABLE p_zycbt032 WITH KEY tcode = 'F-51'
tpmsg = 'E'.
* << Fim da inclusão
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
MESSAGE i015(/pws/zycim) WITH p_zycbt032-msg+0(50)
p_zycbt032-msg+50(50).
CLEAR: v_estorno.
* << Fim da inclusão
PERFORM executa_fb08 TABLES p_zycbt032
USING v_belnrf05
sy-datlo
p_zycbt007
* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO
v_modo.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
v_modo
CHANGING v_estorno.
IF v_estorno EQ 'X'.
* << Fim da inclusão
LOOP AT itab_matuse_aux WHERE hkont = itab_matuse_aux2-hkont.
IF itab_matuse_aux-j_1bmatuse = 0.
CLEAR /pws/zycie085-belnr_0_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 1.
CLEAR /pws/zycie085-belnr_1_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 2.
CLEAR /pws/zycie085-belnr_2_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 3.
CLEAR /pws/zycie085-belnr_3_f05.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
ENDIF..
* << Fim da inclusão
UPDATE /pws/zycit085
SET belnr_0_f05 = /pws/zycie085-belnr_0_f05
belnr_1_f05 = /pws/zycie085-belnr_1_f05
belnr_2_f05 = /pws/zycie085-belnr_2_f05
belnr_3_f05 = /pws/zycie085-belnr_3_f05
WHERE nrseqdi = /pws/zycie085-nrseqdi.
COMMIT WORK.
ENDIF.
ENDIF.
ELSE.
READ TABLE p_zycbt032 WITH KEY tpmsg = 'E'.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
MESSAGE i015(/pws/zycim) WITH p_zycbt032-msg+0(50)
p_zycbt032-msg+50(50).
CLEAR: v_estorno.
* << Fim da inclusão
PERFORM executa_fb08 TABLES p_zycbt032
USING v_belnrf05
sy-datlo
p_zycbt007
* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO
v_modo.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
v_modo
CHANGING v_estorno.
IF v_estorno EQ 'X'.
* << Fim da inclusão
LOOP AT itab_matuse_aux WHERE hkont = itab_matuse_aux2-hkont.
IF itab_matuse_aux-j_1bmatuse = 0.
CLEAR /pws/zycie085-belnr_0_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 1.
CLEAR /pws/zycie085-belnr_1_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 2.
CLEAR /pws/zycie085-belnr_2_f05.
ELSEIF itab_matuse_aux-j_1bmatuse = 3.
CLEAR /pws/zycie085-belnr_3_f05.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO
ENDIF.
* << Fim da inclusão
UPDATE /pws/zycit085
SET belnr_0_f05 = /pws/zycie085-belnr_0_f05
belnr_1_f05 = /pws/zycie085-belnr_1_f05
belnr_2_f05 = /pws/zycie085-belnr_2_f05
belnr_3_f05 = /pws/zycie085-belnr_3_f05
WHERE nrseqdi = /pws/zycie085-nrseqdi.
COMMIT WORK.
ENDIF.
ENDIF.
ENDIF.
...
...
FORM executa_fb08 TABLES p_zycbt032 STRUCTURE /pws/zycbt032
USING p_belnr
p_budat
p_zycbt007 STRUCTURE /pws/zycbt007
* >> Início da exclusão: FORM EXECUTA_FB08
v_modo.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
v_modo
CHANGING p_estorno.
* << Fim da inclusão
DATA: itab_zycbe033 TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,
vsubrc TYPE sy-subrc.
FREE: itab_zycbe033, p_zycbt032.
CLEAR: p_zycbt032, itab_zycbe033, itab_contas, itab_zycbt036.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = '/PWS/ZYCIE085'.
itab_zycbe033-cpochv = /pws/zycie085-nrseqdi.
itab_zycbe033-belnr = p_belnr.
itab_zycbe033-bukrs = /pws/zycie085-bukrs.
itab_zycbe033-bldat = p_budat.
...
...
TABLES
t_dados = itab_zycbe033
t_zycbt032 = p_zycbt032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE p_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIE085'
tpmsg = 'S'.
* >> Início da inclusão: FORM EXECUTA_FB08
IF sy-subrc EQ 0.
p_estorno = 'X'.
ENDIF.
* << Fim da inclusão
ELSE.
ENDIF.
ELSE.
READ TABLE p_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIE085'
tpmsg = 'S'.
ENDIF.
ENDFORM.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
FORM comm_dele.
* >> Início da inclusão: FORM COMM_DELE
CLEAR: v_dele.
* << Fim da inclusão
IF NOT /pws/zycie085-dtuserc IS INITIAL.
IF NOT /pws/zycie085-nrdi IS INITIAL.
MESSAGE i015 WITH text-029.
ELSE.
SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041 WHERE
nrseq EQ /pws/zycie085-nrseqdi AND
cancel EQ space.
IF sy-subrc EQ 0.
MESSAGE i015 WITH text-028.
ELSE.
...
...
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIE085'
cpochv = /pws/zycie100a-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
* >> Início da inclusão: FORM EXECUTA_FB08
ELSE.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIE085'
cpochv = /pws/zycie100a-nrseq
tpmsg = 'E'.
IF sy-subrc EQ 0.
MESSAGE i015 WITH itab_zycbt032-msg.
v_dele = 'S'.
EXIT.
ENDIF.
* << Fim da inclusão
ENDIF.
PERFORM preenche_hist_contabil USING v_belnr_ant
p_budat(4).
ELSE.
v_dele = 'S'.
ENDIF.
ELSE.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIE085'
cpochv = /pws/zycie100a-nrseq
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
FORM reclassificacao_ia_funcao.
DATA: BEGIN OF itab_variacao OCCURS 0.
INCLUDE STRUCTURE /pws/zycit085.
DATA: END OF itab_variacao.
CHECK NOT /pws/zycie085-dtreg IS INITIAL AND
NOT /pws/zycie085-nrdi IS INITIAL.
IF v_modo_bi IS INITIAL .
v_modo_bi = 'N'.
ENDIF.
* >> Início da inclusão: FORM RECLASSIFICACAO_IA_FUNCAO
CLEAR: v_dele.
IF /pws/zycie085-belnr_0 IS INITIAL AND
NOT /pws/zycie085-belnr_0_f05 IS INITIAL.
v_text = text-208.
PERFORM executa_fb08 USING /pws/zycie085-belnr_0_f05
/pws/zycie085-budat_0.
IF v_dele IS INITIAL.
CLEAR: /pws/zycie085-belnr_0_f05.
ENDIF.
ENDIF.
IF /pws/zycie085-belnr_1 IS INITIAL AND
NOT /pws/zycie085-belnr_1_f05 IS INITIAL.
v_text = text-208.
PERFORM executa_fb08 USING /pws/zycie085-belnr_1_f05
/pws/zycie085-budat_1.
IF v_dele IS INITIAL.
CLEAR: /pws/zycie085-belnr_1_f05.
ENDIF.
ENDIF.
IF /pws/zycie085-belnr_2 IS INITIAL AND
NOT /pws/zycie085-belnr_2_f05 IS INITIAL.
v_text = text-208.
PERFORM executa_fb08 USING /pws/zycie085-belnr_2_f05
/pws/zycie085-budat_2.
IF v_dele IS INITIAL.
CLEAR: /pws/zycie085-belnr_2_f05.
ENDIF.
ENDIF.
IF /pws/zycie085-belnr_3 IS INITIAL AND
NOT /pws/zycie085-belnr_3_f05 IS INITIAL.
v_text = text-208.
PERFORM executa_fb08 USING /pws/zycie085-belnr_3_f05
/pws/zycie085-budat_3.
IF v_dele IS INITIAL.
CLEAR: /pws/zycie085-belnr_3_f05.
ENDIF.
ENDIF.
UPDATE /pws/zycit085 SET belnr_0_f05 = /pws/zycie085-belnr_0_f05
belnr_1_f05 = /pws/zycie085-belnr_1_f05
belnr_2_f05 = /pws/zycie085-belnr_2_f05
belnr_3_f05 = /pws/zycie085-belnr_3_f05
WHERE nrseqdi = /pws/zycie085-nrseqdi.
PERFORM clear_date_batch.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_RECLASSIFICACAO_IA'
EXPORTING
i_zycit001 = itab_zycit001
v_modo = v_modo_bi
i_programa = 'DI'
TABLES
t_zycit100 = itab_zycit100[]
t_zycit003 = itab_zycit003[]
t_zycbt032 = itab_zycbt032[]
itab_variacao = itab_variacao[]
...