Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 30/10/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:29:45
Descrição da Nota: ESTORNOS DA FATURA ATRAVÉS DE EXIT, PARA ATENDER ESPECÍFICO DO CLIENTE.
Sintoma
Necessário fazer estornos da fatura através de exit, para atender desenvolvimento específico do
cliente.
Solução
Abertura de Exit no estorno da fatura em vários pontos do programa /PWS/SAPMZYCI003.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02349 Data: 30/10/2006 Hora: 16:13:38
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02349
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00138
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02200 - 00001 - 6.0 - 00025 - TRATAMENTO PARA MOTIVO DE ESTORNO DA FB08 NA FATURA
02290 - 00002 - 6.0 - 00025 - FATURA DE SERVIÇO COM DUMP NO ESTORNO
02294 - 00003 - 6.0 - 00025 - ESTORNAR A FATURA E DAR ERRO ESTÁ APARECENDO A MENSAGEM DESEJA ES
----------------------------------------------------------------------------------------------------
ESTORNOS DA FATURA ATRAVÉS DE EXIT, PARA ATENDER ESPECÍFICO DO CLIENTE.
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXIT - FATURA - ESTORNO DA FATURA - PROGRAMA ESPECÍFICO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
FORM reverse_document_fb08.
DATA:
* >> Início da exclusão: FORM REVERSE_DOCUMENT_FB08
v_monat LIKE bsis-monat,
v_belnr_ant LIKE /pws/zycie006-belnr_p.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
v_monat LIKE bsis-monat.
* << Fim da inclusão
CLEAR v_erro.
IF v_parcela = 'X'.
itab_zycbe033-tabela = '/PWS/ZYCIT132'.
itab_zycbe033-cpochv = itab_zycit132-nrseq.
itab_zycbe033-belnr = itab_zycit132-belnr_p.
...
...
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-bukrs = /pws/zycie006-bukrs.
itab_zycbe033-gjahs = itab_zycbe033-budat+0(4).
v_monat = itab_zycbe033-budat+4(2).
APPEND itab_zycbe033.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'FAT_FB08' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_FB08
IF sy-subrc = 0.
IF v_parcela = 'X'.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT132'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
IF okcode NE 'DELE'.
CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_rev = 'X'.
PERFORM clear_date_batch.
IF v_estorno IS INITIAL.
IF itab_zycit132-mark NE 'X' AND itab_zycit132-status NE 'X'.
PERFORM dele_custo USING /pws/zycit031-inco1_ci space.
PERFORM fill_date_f-43_f-02.
ELSE.
itab_zycit132-status = 'X'.
MODIFY itab_zycit132.
UPDATE /pws/zycbt108 SET status = 'E'
WHERE bukrs = /pws/zycie006-bukrs
AND belnr = /pws/zycie006-nrseq
AND gjahr = /pws/zycie006-dtincl+0(4)
AND belnr_co = itab_zycit132-belnr_p.
UPDATE /pws/zycbt119 SET status = 'E'
WHERE nrseq = itab_zycit132-nrseq_pgfat.
ENDIF.
ENDIF.
ELSE.
itab_zycit132-status = 'X'.
itab_zycit132-eliminado = 'X'.
MODIFY itab_zycit132.
ENDIF.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
v_erro = 'X'.
ENDIF.
ELSE.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
IF okcode NE 'DELE'.
CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.
MODIFY /pws/zycit006 FROM /pws/zycie006.
PERFORM clear_date_batch.
IF v_estorno IS INITIAL.
PERFORM dele_custo USING /pws/zycit031-inco1_ci space.
PERFORM fill_date_f-43_f-02.
ENDIF.
ENDIF.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
v_erro = 'X'.
/pws/zycie006 = wa_zycie006_ini.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
IF sy-subrc = 0.
PERFORM atualiza_fb08_fat.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
ELSEIF sy-subrc EQ '4'.
PERFORM atualiza_fb08_fat.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
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.
APPEND itab_zycie033.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'REC_MBST' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MBST'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
...
...
t_zycit032 = itab_zycit032
t_itens_nf = itab_zycit003
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_MBST
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
IF sy-subrc = 0 OR E_SUBRC EQ 0.
* << Fim da inclusão
READ TABLE itab_zycit032 WITH KEY tcode = 'MBST'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
...
...
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-gjahr = /pws/zycie006-dt_mr1m+0(4).
v_belnr_ant = /pws/zycie006-belnr_mr1m.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
APPEND itab_zycie033.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'REC_MR8M' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'
EXPORTING
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.
* >> Início da exclusão: FORM REVERSE_DOCUMENT_MR8M
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MR8M
IF sy-subrc = 0 OR E_SUBRC = 0.
* << Fim da inclusão
READ TABLE itab_zycit032 WITH KEY tcode = 'MR8M'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
...
...
itab_zycbe033-bldat = /pws/zycie006-dt_f_51.
itab_zycie033-budat = /pws/zycie006-dt_f_51.
v_belnr_ant = /pws/zycie006-belnr_f_51.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
APPEND itab_zycbe033.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'FBRA_REC' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FBRA'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
...
...
t_zycbt032 = itab_zycbt032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
* >> Início da exclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
READ TABLE itab_zycbt032 WITH KEY tcode = 'FBRA'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
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'.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
PERFORM atualiza_fbra_rec.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
* << Fim da inclusão
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51
'F-51'.
...
...
/pws/zycie006-belnr_f_51 ,
/pws/zycie006-dt_f_51 .
v_fbra_ok = 'S'.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_CONTAB_FBRA
ELSEIF e_subrc EQ '4'.
PERFORM atualiza_fbra_rec.
* << Fim da inclusão
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
...
...
v_data = v_bldat_fb08
v_bukrs = /pws/zycie006-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc
* >> Início da exclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
v_gjahr = itab_zycbe033-gjahr .
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
v_gjahr = itab_zycbe033-gjahr.
* << Fim da inclusão
IF v_subrc = 0.
itab_zycbe033-budat = v_bldat_fb08.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
ENDIF.
APPEND itab_zycbe033.
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'REC_FB08' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
...
...
t_zycbt032 = itab_zycbt032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
* >> Início da exclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT006'
cpochv = v_cpochv_fb08
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
CLEAR: /pws/zycie006-statusp_f_51,
/pws/zycie006-belnr_f_51 ,
/pws/zycie006-dt_f_51 .
v_fb08_ok = 'S'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
MODIFY /pws/zycit006 FROM /pws/zycie006.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
PERFORM atualiza_fb08_rec.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM clear_date_batch.
* << Fim da inclusão
ELSE.
PERFORM clear_date_batch.
* >> Início da inclusão: FORM REVERSE_COCUMENTO_CONTAB_FB08
ENDIF.
ELSEIF e_subrc EQ '4'.
PERFORM atualiza_fb08_rec.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
PERFORM clear_date_batch.
* << Fim da inclusão
ENDIF.
CLEAR: v_cpochv_fb08, v_belnr_fb08,
v_bukrs_fb08 , v_bldat_fb08,
v_docant_fb08.
ENDFORM. " reverse_cocumento_contab_fb08
...
...
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.
APPEND itab_zycie033.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'FAT_MR8M' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'
EXPORTING
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.
* >> Início da exclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M
IF sy-subrc = 0.
READ TABLE itab_zycit032 WITH KEY tcode = 'MR8M'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
PERFORM fill_date_f_51_docs_miro.
MESSAGE i030 WITH v_belnr_ant.
PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m
'MIRO'.
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_mr8m_ok = 'S'. "MR8M estorna com sucesso
CLEAR v_mr1m_ok.
ELSE.
LOOP AT itab_zycit032.
MESSAGE i015 WITH itab_zycit032-msg+0(50)
itab_zycit032-msg+50(50).
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m
'MIRO'.
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_mr8m_ok = 'S'. "MR8M ja tinha sido estornada
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FATURA_MR8M
IF sy-subrc = 0 OR E_SUBRC EQ 0.
PERFORM ATUALIZA_MR8M_FAT.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
LOOP AT itab_zycit003.
MOVE : itab_zycit003-ebeln TO itab_itens_nf-ebeln,
itab_zycit003-ebelp TO itab_itens_nf-ebelp.
APPEND itab_itens_nf.
ENDLOOP .
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'REC_MBST' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MBST'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
t_itens_nf = itab_itens_nf
*chamado 282417 fim
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
* >> Início da exclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
READ TABLE itab_zycit032 WITH KEY tcode = 'MBST'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
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'. "MR8M estorna com sucesso
ELSE.
LOOP AT itab_zycit032.
MESSAGE i015 WITH itab_zycit032-msg+0(50)
itab_zycit032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
PERFORM atualiza_mbst_rec.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
* << Fim da inclusão
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.
ENDIF.
* >> Início da exclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
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'.
* << Fim da exclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
ELSEIF e_subrc EQ '4'.
PERFORM atualiza_mbst_rec.
* << Fim da inlusão
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
" Verifica se usuário deseja criar novo documento sem estornar
" antigo
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.
* depois de gerado o batch input com sucesso move atualizações.
v_mbst_ok = 'S'.
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENTO_FISICO_FBRA
ENDIF.
* << Fim da inclusão
ENDFORM. " reverse_documento_fisico_fbra
...
...
* >> Início da inclusão:
FORM atualiza_fb08_fat.
IF v_parcela = 'X'.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT132'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
IF okcode NE 'DELE'.
CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_rev = 'X'.
PERFORM clear_date_batch.
IF v_estorno IS INITIAL.
IF itab_zycit132-mark NE 'X' AND itab_zycit132-status NE 'X'.
PERFORM dele_custo USING /pws/zycit031-inco1_ci space.
PERFORM fill_date_f-43_f-02.
ELSE.
itab_zycit132-status = 'X'.
MODIFY itab_zycit132.
UPDATE /pws/zycbt108 SET status = 'E'
WHERE bukrs = /pws/zycie006-bukrs
AND belnr = /pws/zycie006-nrseq
AND gjahr = /pws/zycie006-dtincl+0(4)
AND belnr_co = itab_zycit132-belnr_p.
UPDATE /pws/zycbt119 SET status = 'E'
WHERE nrseq = itab_zycit132-nrseq_pgfat.
ENDIF.
ENDIF.
ELSE.
itab_zycit132-status = 'X'.
itab_zycit132-eliminado = 'X'.
MODIFY itab_zycit132.
ENDIF.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
v_erro = 'X'.
ENDIF.
ELSE.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
IF okcode NE 'DELE'.
CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.
MODIFY /pws/zycit006 FROM /pws/zycie006.
PERFORM clear_date_batch.
IF v_estorno IS INITIAL.
PERFORM dele_custo USING /pws/zycit031-inco1_ci space.
PERFORM fill_date_f-43_f-02.
ENDIF.
ENDIF.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
v_erro = 'X'.
/pws/zycie006 = wa_zycie006_ini.
ENDIF.
ENDIF.
ENDFORM.
FORM atualiza_fbra_rec.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FBRA'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
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'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
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.
ENDIF.
ENDFORM.
FORM atualiza_fb08_rec.
READ TABLE itab_zycbt032 WITH KEY tcode = 'FB08'
tabela = '/PWS/ZYCIT006'
cpochv = v_cpochv_fb08
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
CLEAR: /pws/zycie006-statusp_f_51,
/pws/zycie006-belnr_f_51 ,
/pws/zycie006-dt_f_51 .
v_fb08_ok = 'S'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
PERFORM clear_date_batch.
MODIFY /pws/zycit006 FROM /pws/zycie006.
ENDIF.
ENDFORM.
FORM atualiza_mbst_rec.
READ TABLE itab_zycit032 WITH KEY tcode = 'MBST'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH v_belnr_ant.
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'.
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'.
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.
ENDIF.
ENDFORM.
form ATUALIZA_MR8M_FAT.
READ TABLE itab_zycit032 WITH KEY tcode = 'MR8M'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
PERFORM fill_date_f_51_docs_miro.
MESSAGE i030 WITH v_belnr_ant.
PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m
'MIRO'.
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_mr8m_ok = 'S'.
CLEAR v_mr1m_ok.
ELSE.
LOOP AT itab_zycit032.
MESSAGE i015 WITH itab_zycit032-msg+0(50)
itab_zycit032-msg+50(50).
ENDLOOP.
PERFORM popup_message USING text-026 text-025.
IF v_answer = 'J'.
PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m
'MIRO'.
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m.
MODIFY /pws/zycit006 FROM /pws/zycie006.
v_mr8m_ok = 'S'.
ENDIF.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
* >> Início da inclusão:
data: v_belnr_ant LIKE /pws/zycie006-belnr_p.
data: e_estorno(10).
* << Fim da inclusão
.....
DATA: END OF COMMON PART.