Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 14/01/2008 00:00:00
Data/Hora Última Alteração: 03/02/2010 17:00:43
Descrição da Nota: EXIT FAT008 DO PROGRAMA /PWS/SAPMZYCI003
Sintoma
Abertura de exit na criação da fatura.
Solução
Abertura de exit na fatura.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05622 Data: 14/01/2008 Hora: 09:32:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05622
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00029
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
EXIT FAT008 DO PROGRAMA /PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Palavras Chave:
FAT008 - EXIT
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
FORM reverse_document_fb08.
DATA:
v_monat LIKE bsis-monat.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'FB08'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
CLEAR v_erro.
IF v_parcela = 'X'.
IF itab_zycit132-miro EQ 'X'.
PERFORM estorn_miro_la.
EXIT.
ENDIF.
itab_zycbe033-tabela = '/PWS/ZYCIT132'.
itab_zycbe033-cpochv = itab_zycit132-nrseq.
itab_zycbe033-belnr = itab_zycit132-belnr_p.
IF NOT itab_zycit132-dt_belnrp IS INITIAL.
...
...
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
PERFORM atualiza_fb08_fat.
ENDIF.
ELSEIF sy-subrc EQ '4'.
PERFORM atualiza_fb08_fat.
ENDIF.
PERFORM clear_date_batch.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
ENDIF.
* << Fim da inclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
FORM reverse_document_mbst.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
DATA: BEGIN OF itab_itens_nf OCCURS 0.
INCLUDE STRUCTURE /pws/zycit044.
DATA: END OF itab_itens_nf.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'MBST'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
itab_zycie033-tcode = 'MBST'.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
itab_zycie033-mblnr = /pws/zycie006-mblnr_mb01.
itab_zycie033-gjahr = /pws/zycie006-dt_mb01+0(4).
v_belnr_ant = /pws/zycie006-mblnr_mb01.
itab_zycie033-budat = /pws/zycie006-dt_mb01.
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
...
...
ELSE.
LOOP AT itab_zycit032.
MESSAGE i015 WITH itab_zycit032-msg+0(50)
itab_zycit032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
v_mbst_ok = 'S'.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDFORM.
FORM reverse_document_mr8m.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'MR8M'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
PERFORM get_parameters_mrm1_receb.
itab_zycie033-tcode = 'MR8M'.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
itab_zycie033-belnr = /pws/zycie006-belnr_mr1m.
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-gjahr = /pws/zycie006-dt_mr1m+0(4).
v_belnr_ant = /pws/zycie006-belnr_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
...
...
CLEAR v_mr1m_ok.
ELSE.
LOOP AT itab_zycit032.
MESSAGE i015 WITH itab_zycit032-msg+0(50)
itab_zycit032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
v_mr8m_ok = 'S'.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
...
...
FORM fill_date_f_51_docs_miro.
DATA: v_belnr_miro LIKE rbkp-belnr.
* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'F51MIRO'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
PERFORM clear_date_batch.
IF v_subrc IS INITIAL.
PERFORM multiplos_lancamentos_f_51.
ENDIF.
PERFORM get_parameters_f-51.
SELECT SINGLE * FROM rbkp WHERE belnr = /pws/zycie006-belnr_mr1m
AND gjahr = /pws/zycie006-dt_mr1m(4).
v_belnr_miro = rbkp-stblg.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = 'F-51'.
...
...
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-51'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc = 0.
MESSAGE i059 WITH itab_zycbt032-belnr.
ENDIF.
ENDIF.
ELSEIF e_subrc EQ '8'.
EXIT .
* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
FORM reverse_documento_contab_fbra.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'FBRA'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
PERFORM clear_date_batch.
MOVE: /pws/zycie006-nrseq TO v_cpochv_fb08,
/pws/zycie006-belnr_f_51 TO v_belnr_fb08 ,
/pws/zycie006-bukrs TO v_bukrs_fb08 ,
/pws/zycie006-dt_f_51 TO v_bldat_fb08 ,
/pws/zycie006-belnr_f_51 TO v_docant_fb08.
itab_zycbe033-tcode = 'FBRA'.
itab_zycbe033-tabela = '/PWS/ZYCIT006'.
itab_zycbe033-cpochv = /pws/zycie006-nrseq.
itab_zycbe033-belnr = /pws/zycie006-belnr_f_51.
...
...
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51
'F-51'.
CLEAR: /pws/zycie006-statusp_f_51,
/pws/zycie006-belnr_f_51 ,
/pws/zycie006-dt_f_51 .
v_fbra_ok = 'S'.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM reverse_cocumento_contab_fb08.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'FB08'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
PERFORM clear_date_batch.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-tabela = '/PWS/ZYCIT006'.
itab_zycbe033-cpochv = v_cpochv_fb08.
itab_zycbe033-belnr = v_belnr_fb08.
itab_zycbe033-bukrs = /pws/zycie006-bukrs.
itab_zycbe033-bldat = v_bldat_fb08.
v_belnr_ant = v_docant_fb08.
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
...
...
PERFORM atualiza_fb08_rec.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM clear_date_batch.
ENDIF.
CLEAR: v_cpochv_fb08, v_belnr_fb08,
v_bukrs_fb08 , v_bldat_fb08,
v_docant_fb08.
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
endif.
* << Fim da inclusão
ENDFORM.
FORM reverse_documento_fatura_mr8m.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'FMR8M'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
PERFORM clear_date_batch.
itab_zycie033-tcode = 'MR8M'.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
itab_zycie033-belnr = /pws/zycie006-belnr_mr1m.
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-gjahr = /pws/zycie006-dt_mr1m+0(4).
v_belnr_ant = /pws/zycie006-belnr_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
...
...
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0 OR e_subrc EQ 0.
PERFORM atualiza_mr8m_fat.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM reverse_documento_fisico_fbra.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
clear v_belnr_ant.
e_subrc = '0' .
perform verifica_exit using 'D'
'/PWS/SAPMZYCI003'
'FAT008'.
clear itab_zyglt100 .
read table itab_zyglt100 with key
zexit = 'FAT008' binary search.
if sy-subrc eq 0.
if not itab_zyglt100-zexit_ativa is initial.
e_estorno = 'FMBST'.
perform (itab_zyglt100-formulario) in program
(itab_zyglt100-programa) if found.
endif.
endif.
if e_subrc eq '0'.
* << Fim da inclusão
DATA: BEGIN OF itab_itens_nf OCCURS 0.
INCLUDE STRUCTURE /pws/zycit044.
DATA: END OF itab_itens_nf.
PERFORM clear_date_batch.
itab_zycie033-tcode = 'MBST'.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
itab_zycie033-mblnr = /pws/zycie006-mblnr_mb01.
itab_zycie033-gjahr = /pws/zycie006-dt_mb01+0(4).
...
...
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01
'MIGO'.
CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,
/pws/zycie006-dt_mb01.
v_mbst_ok = 'S'.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...