Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 01/09/2011 00:00:00
Data/Hora Última Alteração: 10/11/2011 13:17:44
Descrição da Nota: NOTA FISCAL - MENSAGEM REPETIDA POR ITEM
Sintoma
A mensagem de erro estava se repetindo para todos os itens da nota fiscal.
Solução
Atualizado programa para não emitir mensagens repetidas e várias vezes.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11424 Data: 01/09/2011 Hora: 16:18:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11424
Categoria : Erro de Programa
Prioridade : Baixa
Versão PW.CE : 8.0
Pacote : 00008
Agrupamento : 00084
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01972 - 00001 - 6.0 - 00024 - ERRO NA NF QUANDO POSSUI QUEBRAS DE ITENS. VALOR DUPLICADO NO CUS
02595 - 00002 - 6.0 - 00025 - AO CRIAR NF NÃO ATUALIZA TABELAS DO CE E DUPLICA VALORES DE IMPOS
09154 - 00003 - 8.0 - 00001 - MANUTENÇÃO NO DRAFT DA DSE
----------------------------------------------------------------------------------------------------
NOTA FISCAL - MENSAGEM REPETIDA POR ITEM
----------------------------------------------------------------------------------------------------
Palavras Chave:
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF it_zycee005-belnr IS INITIAL OR
it_zycee005-belnr = '0000000000'.
itab_zycit042-processado = ''.
itab_zycit042-mark = ''.
ENDIF.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
ENDLOOP.
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND tpnf EQ itab_zycit042_aux-tpnf
AND lifnr EQ itab_zycit042_aux-lifnr
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
...
...
AND processado = 'X'.
IF it_zycee005-belnr IS INITIAL OR
it_zycee005-belnr = '0000000000'.
itab_zycit042-processado = ''.
itab_zycit042-mark = ''.
ENDIF.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
* >> Início da inclusão: FORM FILL_DATA_J1B1
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
ENDIF.
IF v_modalidade = '99'
OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
IF v_modalidade = '99' AND
...
...
AND j_1bbranch EQ itab_zycit042_aux-j_1bbranch
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
* >> Início da inclusão: FORM FILL_DATA_J1B1
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
v_qtditem = wa_zycit048-qtd_item.
IF v_counter >= v_qtditem.
v_tpnf = 0.
ENDIF.
...
...
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
ENDLOOP.
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ELSE.
CLEAR v_contitm.
LOOP AT itab_zycit042
WHERE nrseq EQ itab_zycit042_aux-nrseq
AND nfglobal EQ itab_zycit042_aux-nfglobal
AND j_1bbranch = itab_zycit042_aux-j_1bbranch
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
...
...
AND lifnr = itab_zycit042_aux-lifnr
AND ( docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888' )
AND mark = 'X'
AND processado = 'X'.
ADD 1 TO v_contitm.
itab_zycit042-itmnum = v_contitm * 10.
MODIFY itab_zycit042 INDEX sy-tabix.
PERFORM atualiza_dados_nota.
* >> Início da inclusão: FORM FILL_DATA_J1B1
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
ENDIF.
ELSE.
CALL SCREEN '0050'.
ENDIF.
...
...
t_dados = it_zycee005
t_itens = it_zycee007
t_campos = it_zycet004
t_zycet005 = it_zycet005
t_message = it_zycee006
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ELSE.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
ENDLOOP.
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
ELSE.
LOOP AT itab_zycit044.
PERFORM atualiza_dados_nota_r.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
ENDIF.
v_tiponf = 'NFR'.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
...
...
AND docnum = /pws/zycie041-docnum.
ENDIF.
ELSE.
READ TABLE it_zycet005 WITH KEY
tcode = text-030
tabela = text-014
cpochv = /pws/zycie041-nfglobal
tpmsg = 'E'.
IF sy-subrc EQ 0.
LOOP AT it_zycet005.
* >> Início da exclusão: FORM FILL_DATA_J1B3
MESSAGE i015 WITH it_zycet005-msg+0(50)
it_zycet005-msg+50(50).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B3
MOVE it_zycet005-msg TO it_erro-msg.
collect it_erro.
* << Fim da inclusão
ENDLOOP.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_DATA_J1B3
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B3
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ENDIF.
ELSEIF ( v_apaga NE 'X' AND v_modalidade NE '99' ) OR
v_apaga = 'X'.
LOOP AT itab_zycit042.
PERFORM deleta_fundap.
DELETE FROM /pws/zycit041
WHERE nrseq = /pws/zycie041-nrseq
AND nfglobal = /pws/zycie041-nfglobal
AND docnum = v_valor.
DELETE FROM /pws/zycit042
...
...
AND nrseqnf = itab_zycit044-nrseqnf
AND nfglobal = itab_zycit044-nfglobal
AND nfremessa = itab_zycit044-nfremessa
AND ebeln = itab_zycit044-ebeln
AND ebelp = itab_zycit044-ebelp.
FREE itab_zycit043_lista.
CLEAR itab_zycit043_lista.
v_cancel = 'OK'.
COMMIT WORK.
ELSE.
* >> Início da exclusão: FORM FILL_DATA_J1B3_R
READ TABLE it_zycet005 WITH KEY tcode = text-030
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
READ TABLE it_zycet005 WITH KEY
tcode = text-030
* << Fim da inclusão
tabela = text-025
* >> Início da exclusão: FORM FILL_DATA_J1B3_R
cpochv =
/pws/zycie043-nfremessa
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
cpochv = /pws/zycie043-nfremessa
* << Fim da inclusão
tpmsg = 'E'.
IF sy-subrc EQ 0.
LOOP AT it_zycet005.
* >> Início da exclusão: FORM FILL_DATA_J1B3_R
MESSAGE i015 WITH it_zycet005-msg+0(50)
it_zycet005-msg+50(50).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
MOVE it_zycet005-msg TO it_erro-msg.
collect it_erro.
* << Fim da inclusão
ENDLOOP.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
ENDLOOP.
LOOP AT it_erro.
MESSAGE i015 WITH it_erro-msg+0(50)
it_erro-msg+50(50).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B3_R
CLEAR: it_erro[].
REFRESH: it_erro[].
* << Fim da inclusão
ELSE.
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
ENDIF.
CLEAR v_modo_bi.
ENDFORM.
...
...
v_libera IS INITIAL ).
PERFORM congela_despesa.
ENDIF.
ENDIF.
ENDIF.
ELSE.
READ TABLE it_zycet005 WITH KEY tcode = text-065
tabela = text-014
cpochv = /pws/zycie041-nfglobal
tpmsg = 'E'.
* >> Início da exclusão: FORM ATUALIZA_DADOS_NOTA
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_DADOS_NOTA
LOOP AT it_zycet005.
* << Fim da inclusão
it_erro-nrseq = itab_zycit042-nrseq.
it_erro-branch = itab_zycit042-j_1bbranch.
it_erro-msg = it_zycet005-msg.
* >> Início da exclusão: FORM ATUALIZA_DADOS_NOTA
APPEND it_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_DADOS_NOTA
collect it_erro.
ENDLOOP.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
ELSE.
READ TABLE it_zycet005 WITH KEY tcode = text-065
tabela = text-025
cpochv =
/pws/zycie043-nfremessa
tpmsg = 'E'.
IF sy-subrc EQ 0.
it_erro-nrseq = itab_zycit042-nrseq.
it_erro-branch = wa_zycit001-j_1bbranch.
it_erro-msg = it_zycet005-msg.
* >> Início da exclusão: FORM ATUALIZA_DADOS_NOTA_R
APPEND it_erro.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_DADOS_NOTA_R
collect it_erro.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDFORM.
...
...
...