Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 16/02/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:06:33
Descrição da Nota: DUMP NO ESTORNO DA FATURA DE SERVIÇO
Sintoma
Se ocorre algum erro na execução do batch input da MIGO da fatura de serviços, o sistema dá dump.
Solução
Declarar a tabela interna t_itens_nf como estrutura da tabela /pws/zycit044. Preencher esta tabela
com o conteúdo da itab_zycit003.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03117 Data: 16/02/2007 Hora: 16:33:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03117
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00151
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00775 - 00001 - 6.0 - 00022 - OCORREU DUMP NO MOMENTO DO ESTORNO DO RECEBIMENTO DO PROCESSO DE
03002 - 00002 - 6.0 - 00026 - O RECEBIMENTO DA FATURA DE SERVIÇO SÓ FAZ A MIRO E DÁ ERRO NA MIG
----------------------------------------------------------------------------------------------------
DUMP NO ESTORNO DA FATURA DE SERVIÇO
----------------------------------------------------------------------------------------------------
Palavras Chave:
MIGO - DUMP - ESTORNO - FATURA DE SERVIÇO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
PERFORM calcula_custo.
ENDIF.
IF v_f_51_ok NE 'S'.
IF v_servico IS INITIAL.
PERFORM reverse_document_mbst.
ENDIF.
PERFORM reverse_document_mr8m.
ENDIF.
PERFORM salvar_dados.
ELSE.
* >> Início da exclusão: FORM EXECUTA_RECEBIMENTO
IF v_servico IS INITIAL.
PERFORM reverse_document_mbst.
ENDIF.
* << Fim da exclusão
PERFORM reverse_document_mr8m.
ENDIF.
PERFORM salvar_dados.
ELSE.
/pws/zycie006-lfsnr = v_lfsnr_old.
ENDIF.
ELSE.
/pws/zycie006-lfsnr = v_lfsnr_old.
ENDIF.
CLEAR v_recebi.
...
...
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
FORM reverse_document_mbst.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
DATA: BEGIN OF itab_itens_nf OCCURS 0.
INCLUDE STRUCTURE /pws/zycit044.
DATA: END OF itab_itens_nf.
* << 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 *
...
...
marv-vmgja EQ /pws/zycie006-dt_mb01+0(4) ) OR
( marv-lfmon EQ /pws/zycie006-dt_mb01+04(02) AND
marv-lfgja EQ /pws/zycie006-dt_mb01+0(4) ).
itab_zycie033-budat = /pws/zycie006-dt_mb01.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycie033-budat = sy-datum.
itab_zycie033-stgrd = /pws/zycbt007-perencer .
ENDIF.
APPEND itab_zycie033.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
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 .
* << Fim da inclusão
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' .
...
...
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
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
* >> Início da exclusão: FORM REVERSE_DOCUMENT_MBST
t_itens_nf = itab_zycit003
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_MBST
t_itens_nf = itab_itens_nf
* << Fim da inclusão
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0 OR e_subrc EQ 0.
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.
...