Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Prestação de Contas
Data/Hora da Publicação: 23/11/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:20:42
Descrição da Nota: AO CRIAR 2 ADIANTAMENTOS PARA UMA PRESTAÇÃO, É CRIADA PRESTAÇÃO A MAIS.
Sintoma
Ao criar dois adiantamentos e vinculá-las a uma prestação de contas, o sistema cria duas prestações
ao invés de agrupá-las em uma só.
Solução
Atualização do programa de prestação de contas para vincular mais de um adiantamento para uma única
prestação.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02502 Data: 23/11/2006 Hora: 16:46:56
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02502
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00140
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01263 - 00001 - 6.0 - 00023 - LIBERAÇÃO DE PRESTAÇÃO DE CONTA VIA ESTRATÉGIA
02278 - 00002 - 6.0 - 00025 - AO CONSULTAR PRESTAÇÃO DE CONTAS NÃO APARECE NENHUMA DESPESA.
----------------------------------------------------------------------------------------------------
AO CRIAR 2 ADIANTAMENTOS PARA UMA PRESTAÇÃO, É CRIADA PRESTAÇÃO A MAIS.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ADIANTAMENTO - PRESTAÇÃO DE CONTAS
ADIANTAMENTO VINCULADO A PRESTAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI007F01
REPS /PWS/MZYCI007F02
REPT /PWS/SAPMZYCI007
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI007F01
...
ENDIF.
ENDFORM.
FORM salva_dados.
DATA: v_nrpres LIKE /pws/zycit026-nrpres,
v_save.
* >> Início da inclusão: FORM SALVA_DADOS
data: itab_zycit016_aux like it_zycit016 occurs 0 with header line,
itab_zycit026_aux like itab_zycit026 occurs 0 with header line.
* << Fim da inclusão
CLEAR: v_neg.
SORT it_zycit027_aux BY nrseq nradto tpdesp.
LOOP AT it_zycit027_aux WHERE vldp < 0.
MESSAGE e015 WITH text-054 text-081.
CLEAR ok_code.
...
...
EXIT.
ENDIF.
CLEAR: itab_zycit026, v_totdep, v_vldf, v_value, v_nrpres .
MOVE: /pws/zycie026-vlmi TO v_vlmi_tot, /pws/zycie026-totdep TO
v_totdep_tot.
* >> Início da exclusão: FORM SALVA_DADOS
LOOP AT itab_zycit026 WHERE nrseq = /pws/zycie026-nrseq
AND ( marc = 'X' OR marc = 'D' ).
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
LOOP AT itab_zycit026 WHERE marc = 'X'.
MOVE itab_zycit026 TO itab_zycit026_aux.
APPEND itab_zycit026_aux.
ENDLOOP.
IF NOT itab_zycit026_aux[] IS INITIAL.
SELECT * FROM /pws/zycit016
INTO TABLE itab_zycit016_aux
FOR ALL ENTRIES IN itab_zycit026_aux
WHERE nrseq = itab_zycit026_aux-nrseq
AND nradto = itab_zycit026_aux-nradto.
ENDIF.
* << Fim da inclusão
IF /pws/zycie026-nrpres IS INITIAL.
SELECT MAX( nrpres ) FROM /pws/zycit026 INTO v_nrpres.
v_value = v_nrpres + 1.
ELSE.
v_value = /pws/zycie026-nrpres.
ENDIF.
* >> Início da exclusão: FORM SALVA_DADOS
LOOP AT it_zycit027_aux WHERE nrseq = itab_zycit026-nrseq.
v_totdep = v_totdep + it_zycit027_aux-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
LOOP AT itab_zycit026 WHERE marc = 'X'.
loop at itab_zycit016_aux WHERE nrseq = itab_zycit026-nrseq
and nradto = itab_zycit026-nradto .
v_totdep = v_totdep + itab_zycit016_aux-vldp.
* << Fim da inclusão
ENDLOOP.
v_vldf = /pws/zycie026-vldf.
IF itab_zycit026-dtincl IS INITIAL.
v_dtincl = sy-datlo.
ELSE.
...
...
EXIT.
ENDIF.
ENDIF.
ENDIF.
UPDATE /pws/zycit026 SET dtincl = v_dtincl
* >> Início da exclusão: FORM SALVA_DADOS
totdep = v_totdep
vldf = v_vldf
dtvencto = /pws/zycie026-dtvencto
dtacerto = /pws/zycie026-dtacerto
bcofinan = /pws/zycie026-bcofinan
bcocred = /pws/zycie026-bcocred
nfserv = /pws/zycie026-nfserv
bvtyp = /pws/zycie026-bvtyp
zlsch = /pws/zycie026-zlsch
fdlev = /pws/zycie026-fdlev
dtdoc = /pws/zycie026-dtdoc
dtlanc = /pws/zycie026-dtlanc
frggr = /pws/zycie026-frggr
frgzu = /pws/zycie026-frgzu
bname = /pws/zycie026-bname
estrat = /pws/zycie026-estrat
vinserv = /pws/zycie026-vinserv
area = /pws/zycie026-area
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
totdep = v_totdep
vldf = v_vldf
dtvencto = /pws/zycie026-dtvencto
dtacerto = /pws/zycie026-dtacerto
bcofinan = /pws/zycie026-bcofinan
bcocred = /pws/zycie026-bcocred
nfserv = /pws/zycie026-nfserv
bvtyp = /pws/zycie026-bvtyp
zlsch = /pws/zycie026-zlsch
fdlev = /pws/zycie026-fdlev
dtdoc = /pws/zycie026-dtdoc
dtlanc = /pws/zycie026-dtlanc
frggr = /pws/zycie026-frggr
frgzu = /pws/zycie026-frgzu
bname = /pws/zycie026-bname
estrat = /pws/zycie026-estrat
vinserv = /pws/zycie026-vinserv
area = /pws/zycie026-area
* << Fim da inclusão
frgsx1 = /pws/zycie026-frgsx1
frgsx2 = /pws/zycie026-frgsx2
frgsx3 = /pws/zycie026-frgsx3
frgsx4 = /pws/zycie026-frgsx4
frgsx5 = /pws/zycie026-frgsx5
waersmu = /pws/zycie026-waersmu
taxamu = /pws/zycie026-taxamu
* >> Início da exclusão: FORM SALVA_DADOS
totdepme = /pws/zycie026-totdepme
vldfme = /pws/zycie026-vldfme
vlmime = /pws/zycie026-vlmime
reterir = /pws/zycie026-reterir
forndes = /pws/zycie026-forndes
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
totdepme = /pws/zycie026-totdepme
vldfme = /pws/zycie026-vldfme
vlmime = /pws/zycie026-vlmime
reterir = /pws/zycie026-reterir
forndes = /pws/zycie026-forndes
nrpres = v_value
* << Fim da inclusão
WHERE nrseq = itab_zycit026-nrseq
* >> Início da exclusão: FORM SALVA_DADOS
AND nradto = itab_zycit026-nradto
AND nrpres = v_value.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
AND nradto = itab_zycit026-nradto.
* << Fim da inclusão
IF sy-tcode <> '/PWS/ZYCI007_A' OR ( /pws/zycie026-docomp IS INITIAL
AND
/pws/zycie026-docfat IS INITIAL ).
UPDATE /pws/zycit026 SET status = 'I'
WHERE nrseq = itab_zycit026-nrseq
* >> Início da exclusão: FORM SALVA_DADOS
AND nradto = itab_zycit026-nradto
AND nrpres = v_value.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
AND nradto = itab_zycit026-nradto.
* << Fim da inclusão
IF sy-subrc = 0.
v_save = 'X'.
ENDIF.
ENDIF.
IF sy-subrc NE 0.
MOVE: itab_zycit026-nradto TO /pws/zycie026-nradto.
* >> Início da exclusão: FORM SALVA_DADOS
SELECT MAX( nrpres ) FROM /pws/zycit026 INTO v_nrpres.
v_value = v_nrpres + 1.
MOVE: v_value TO /pws/zycie026-nrpres.
* << Fim da exclusão
MODIFY /pws/zycit026 FROM /pws/zycie026.
COMMIT WORK.
IF sy-subrc = 0.
v_save = 'X'.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI007F02
...
ENDIF.
IF itab_zycit026-nrseq NE v_embant.
MESSAGE s039 WITH text-051.
LEAVE TO SCREEN 200.
ENDIF.
* >> Início da inclusão: FORM CRIA_PRESTACAO
if not itab_zycit026-nradto is initial.
v_flag = 'S' .
endif.
* << Fim da inclusão
ENDLOOP.
IF sy-subrc = 4.
MESSAGE s039 WITH text-048.
* >> Início da inclusão: FORM CRIA_PRESTACAO
EXIT.
else.
if v_flag eq 'S'.
loop at itab_zycit026 where marc = 'X'.
if itab_zycit026-nradto is initial.
v_flag = 'X'.
exit.
endif.
endloop.
if v_flag eq 'X'.
message s039 with text-108.
loop at itab_zycit026 where marc = 'X'.
itab_zycit026-marc = ' ' .
modify itab_zycit026.
endloop.
* << Fim da inclusão
EXIT.
* >> Início da inclusão: FORM CRIA_PRESTACAO
endif.
endif.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CRIA_PRESTACAO
clear v_flag.
* << Fim da inclusão
PERFORM carrega_it_tab_aux.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI007
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 108
Texto: (35 caracteres)
"Itens sem Adiantamento selecionado!"
Comprimento máximo: 35
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR103
...
CLEAR it_zycit008.
CONTINUE.
ELSE.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da inclusão:
IF sy-tcode EQ '/PWS/ZYCIR103'.
* << Fim da inclusão
* >> Início da exclusão:
IF sy-tcode EQ 'ZYCIR103'.
* << Fim da exclusão
LOOP AT it_zycit026.
v_indice2 = sy-tabix.
READ TABLE it_zyglt343 WITH KEY frgsx = it_zycit026-estrat.
IF sy-subrc = 0.
IF it_zyglt343-seq EQ 'X'.
IF it_zycit026-frgsx1 IS INITIAL.
IF v_frggr NE it_zyglt343-frggrp.
DELETE it_zycit026 INDEX v_indice2.
CLEAR it_zycit026.
CONTINUE.
...
...
MOVE value TO p_frgzd.
FORM executa_liberacao.
IF sy-tcode = '/PWS/ZYCIR103'.
LOOP AT it_zycit026.
MOVE:
it_zycit026-nrpres TO itab_libera-nrseq,
it_zycit026-nrseq TO itab_libera-nrseqce,
it_zycit026-embarca TO itab_libera-embarca,
it_zycit026-despach TO itab_libera-despach,
it_zycit026-nfserv TO itab_libera-nfserv,
* >> Início da exclusão: FORM EXECUTA_LIBERACAO
it_zycit026-totdep TO itab_libera-valor,
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_LIBERACAO
it_zycit026-totdepme TO itab_libera-valor,
* << Fim da inclusão
it_zycit026-frggr TO itab_libera-frggr,
it_zycit026-frgsx1 TO itab_libera-frgsx1,
it_zycit026-frgsx2 TO itab_libera-frgsx2,
it_zycit026-frgsx3 TO itab_libera-frgsx3,
it_zycit026-frgsx4 TO itab_libera-frgsx4,
it_zycit026-frgsx5 TO itab_libera-frgsx5,
it_zycit026-frgzu TO itab_libera-frgzu,
it_zycit026-estrat TO itab_libera-estrat,
* >> Início da exclusão: FORM EXECUTA_LIBERACAO
it_zycit026-waers TO itab_libera-waers,
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_LIBERACAO
it_zycit026-waersmu TO itab_libera-waers,
* << Fim da inclusão
it_zycit026-dtvencto TO itab_libera-data.
SELECT SINGLE * FROM /pws/zyglt340 WHERE codmod = 'D'
AND func = 'PC'
AND estrat = 'X'.
IF sy-subrc EQ 0.
IF /pws/zyglt340-dif NE 'X'.
* >> Início da exclusão: FORM EXECUTA_LIBERACAO
MOVE it_zycit026-totdep TO itab_libera-valor.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_LIBERACAO
MOVE it_zycit026-totdepme TO itab_libera-valor.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM EXECUTA_LIBERACAO
itab_libera-valor = it_zycit026-vldf.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_LIBERACAO
itab_libera-valor = it_zycit026-vldfme.
* << Fim da inclusão
IF it_zycit026-vldf < 0.
itab_libera-valor = itab_libera-valor * -1.
ENDIF.
...
...
ELSEIF itab_zycit026_erro-frgsx3 EQ v_frggr.
CLEAR itab_zycit026_erro-frgsx3.
itab_zycit026_erro-frgzu = '1'.
ELSEIF itab_zycit026_erro-frgsx4 EQ v_frggr.
CLEAR itab_zycit026_erro-frgsx4.
itab_zycit026_erro-frgzu = '1'.
ELSEIF itab_zycit026_erro-frgsx5 EQ v_frggr.
CLEAR itab_zycit026_erro-frgsx5.
itab_zycit026_erro-frgzu = '1'.
ENDIF.
* >> Início da exclusão: FORM SALVA_DADOS
MODIFY itab_zycit026_erro INDEX sy-tabix.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_DADOS
MODIFY itab_zycit026_erro transporting
frgzu frgsx1 frgsx2 frgsx3 frgsx4 frgsx5
where nrpres = itab_message-nrdoc.
* << Fim da inclusão
ENDIF.
ENDLOOP.
MODIFY /pws/zycit026 FROM TABLE itab_zycit026_erro.
CALL SCREEN 0102 STARTING AT 5 5 ENDING AT 122 30.
ENDIF.
DELETE itab_dados WHERE gravado = 'X'.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = '=&REFRESH'
EXCEPTIONS
...
...
EXCEPTIONS
icon_not_found = 1
outputfield_too_short = 2
OTHERS = 3.
ENDIF.
MOVE: it_zycit026-nrpres TO itab_dados-nrseq ,
it_zycit026-nrseq TO itab_dados-nrseqce ,
it_zycit026-embarca TO itab_dados-embarca ,
it_zycit026-despach TO itab_dados-despach ,
it_zycit026-nfserv TO itab_dados-nfserv ,
* >> Início da exclusão: FORM CARREGA_DADOS
it_zycit026-totdep TO itab_dados-valor ,
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_DADOS
it_zycit026-totdepme TO itab_dados-valor ,
* << Fim da inclusão
it_zycit026-frgsx1 TO itab_dados-frgsx1 ,
it_zycit026-frgsx2 TO itab_dados-frgsx2 ,
it_zycit026-frgsx3 TO itab_dados-frgsx3 ,
it_zycit026-frgsx4 TO itab_dados-frgsx4 ,
it_zycit026-frgsx5 TO itab_dados-frgsx5 ,
it_zyglt343-aprova TO itab_dados-aprova .
SELECT SINGLE name1 INTO itab_dados-name1
FROM lfa1 WHERE lifnr = it_zycit026-despach.
CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIR103'
EXPORTING
...