Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 20/05/2011 00:00:00
Data/Hora Última Alteração: 08/06/2011 16:36:27
Descrição da Nota: VME - DISPONIBILIDADE FATURAS - VINCULAÇÃO - BLOQUEIO DE FATURAS
Sintoma
O sistema permitia que a mesma fatura fosse incluída ao mesmo tempo no programa de Disponibilidade
de Faturas e Vinculação, fazendo com que o Saldo a Vincular fosse gravado com valor incorreto na
tabela
Solução
Foi incluído o bloqueio da fatura no programa de Disponibilidade de Faturas e rotinas de validação
de alteração do Saldo a Vincular nos programas de Disponibilidade de Faturas e Vinculação
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11168 Data: 20/05/2011 Hora: 13:59:07
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11168
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00071
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02109 - 00001 - 6.0 - 00024 - DESVINCULAÇÃO DE VALORES NAS FATURAS NA VINCULAÇÃO
03752 - 00002 - 7.0 - 00001 - VINCULAÇÃO - ESTORNO AUTOMATICO POR ERRO NA CONTABILIZAÇÃO
06218 - 00003 - 7.0 - 00005 - VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR
10202 - 00004 - 8.0 - 00003 - VINCULAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.
----------------------------------------------------------------------------------------------------
VME - DISPONIBILIDADE FATURAS - VINCULAÇÃO - BLOQUEIO DE FATURAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
VME - DISPONIBILIDADE FATURAS - VINCULAÇÃO
BLOQUEIO DE FATURAS PARA ALTERAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB009F03
REPS /PWS/MZYCB009F04
REPS /PWS/MZYCB009I01
REPS /PWS/MZYCB034F01
REPT /PWS/SAPMZYCB009
REPT /PWS/SAPMZYCB034
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F03
...
if sy-subrc eq 0.
move itab_t052u-text1 to itab_zycbt005-text1.
else.
clear itab_zycbt005-text1.
endif.
move itab_zycbt017-vlslf to itab_zycbt005-vlslf.
modify itab_zycbt005 transporting vlslf text1
where nrinvoic = itab_zycbt017-nrinvoic
and nrparcf = itab_zycbt017-nrparcf
and gsberf = itab_zycbt017-gsberf.
* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT017
perform lock_record_fatura.
* << Fim da inclusão
endif.
endloop.
move itab_zycbt005[] to itab_zycbt005_ant[].
endform.
form limpa_itab_zycbt005_aux4.
refresh itab_zycbt005_aux4.
clear itab_zycbt005_aux4.
endform.
form carrega_zycbe005.
clear: itab_zycbt017, /pws/zycbe017, itab_zycbt017-zterm,
...
...
exceptions
foreign_lock = 1
system_failure = 2.
case sy-subrc.
when 1.
message w015 with text-001 text-150.
delete itab_zycbt005 where nrinvoic = itab_zycbt005-nrinvoic
and nrparcf = itab_zycbt005-nrparcf
and gsberf = itab_zycbt005-gsberf.
delete itab_zycbt017_aux where nrinvoic = itab_zycbt005-nrinvoic
* >> Início da inclusão: FORM LOCK_RECORD_FATURA
and nrparcf = itab_zycbt005-nrparcf
and gsberf = itab_zycbt005-gsberf.
if sy-tcode = c_transacao_c.
/pws/zycbe001-slvinc =
/pws/zycbe001-slvinc + itab_zycbt005-vlvinc.
endif.
delete itab_zycbt017 where nrinvoic = itab_zycbt005-nrinvoic
* << Fim da inclusão
and nrparcf = itab_zycbt005-nrparcf
and gsberf = itab_zycbt005-gsberf.
when 2.
message a015 with text-066.
endcase.
endform.
form unlock_record_fatura using wa_zycbt005f like /pws/zycbt005.
if not wa_zycbt005f is initial.
call function '/PWS/ZYCB_DEQUEUE_ZYCBT017V'
exporting
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F04
...
i_bloqueia = space
TABLES
itab_zycbt224 = itab_zycbe224_erro
EXCEPTIONS
zycbe224_null = 1
erro_bloqueio = 2
OTHERS = 3.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM valida_alt_disp.
TYPES:
BEGIN OF t_zycbt017_saldo,
nrinvoic TYPE /pws/zycbt017-nrinvoic,
nrparcf TYPE /pws/zycbt017-nrparcf,
gsberf TYPE /pws/zycbt017-gsberf,
vlslf TYPE /pws/zycbt017-vlslf,
END OF t_zycbt017_saldo.
DATA: itab_zycbt017_saldo TYPE TABLE OF t_zycbt017_saldo,
wa_zycbt017_saldo TYPE t_zycbt017_saldo,
v_saldo TYPE /pws/zycbt017-vlslf,
v_tabix TYPE sy-tabix.
IF sy-tcode EQ c_transacao_c.
CHECK NOT itab_zycbt005[] IS INITIAL.
SELECT nrinvoic nrparcf gsberf vlslf
FROM /pws/zycbt017
INTO TABLE itab_zycbt017_saldo
FOR ALL ENTRIES IN itab_zycbt005
WHERE nrinvoic = itab_zycbt005-nrinvoic
AND nrparcf = itab_zycbt005-nrparcf
AND gsberf = itab_zycbt005-gsberf.
CHECK sy-subrc EQ 0.
LOOP AT itab_zycbt005.
v_tabix = sy-tabix.
READ TABLE itab_zycbt017_saldo INTO wa_zycbt017_saldo
WITH KEY nrinvoic = itab_zycbt005-nrinvoic
nrparcf = itab_zycbt005-nrparcf
gsberf = itab_zycbt005-gsberf.
IF sy-subrc EQ 0.
v_saldo = itab_zycbt005-vlslf + itab_zycbt005-vlme_p.
IF v_saldo NE wa_zycbt017_saldo-vlslf.
MESSAGE e061 WITH text-514 itab_zycbt005-nrinvoic
text-514 text-515.
ENDIF.
ENDIF.
ENDLOOP.
ELSEIF sy-tcode EQ c_transacao_a.
CHECK NOT itab_zycbt005_ant[] IS INITIAL.
SELECT nrinvoic nrparcf gsberf vlslf
FROM /pws/zycbt017
INTO TABLE itab_zycbt017_saldo
FOR ALL ENTRIES IN itab_zycbt005_ant
WHERE nrinvoic = itab_zycbt005_ant-nrinvoic
AND nrparcf = itab_zycbt005_ant-nrparcf
AND gsberf = itab_zycbt005_ant-gsberf.
CHECK sy-subrc EQ 0.
LOOP AT itab_zycbt005_ant.
v_tabix = sy-tabix.
READ TABLE itab_zycbt005 WITH KEY
nrinvoic = itab_zycbt005_ant-nrinvoic
nrparcf = itab_zycbt005_ant-nrparcf
gsberf = itab_zycbt005_ant-gsberf.
CHECK itab_zycbt005-vlvinc NE itab_zycbt005_ant-vlvinc.
READ TABLE itab_zycbt017_saldo INTO wa_zycbt017_saldo
WITH KEY nrinvoic = itab_zycbt005_ant-nrinvoic
nrparcf = itab_zycbt005_ant-nrparcf
gsberf = itab_zycbt005_ant-gsberf.
IF sy-subrc EQ 0.
IF itab_zycbt005_ant-vlslf NE wa_zycbt017_saldo-vlslf.
MESSAGE e061 WITH text-514 itab_zycbt005_ant-nrinvoic
text-514 text-515.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009I01
...
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCB001_E'
.
IF sy-subrc EQ 0.
SET PARAMETER ID '/PWS/ZYCBP019' FIELD v_valor.
CALL TRANSACTION '/PWS/ZYCB001_E' AND SKIP FIRST SCREEN .
ELSE.
MESSAGE e261(sf) WITH '/PWS/ZYCB001_E'.
ENDIF.
ENDIF.
WHEN 'SAVE'.
* >> Início da inclusão: MODULE USER_COMMAND_0100
PERFORM valida_alt_disp.
* << Fim da inclusão
IF NOT /pws/zycbe006-dtpagext IS INITIAL
AND NOT itab_zycbt005[] IS INITIAL
AND ( itab_zycbt005-tpcontr(1) EQ 'P'
OR itab_zycbt005-tpcontr(1) EQ 'S' ).
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
defaultoption = 'Y'
textline1 = text-511
textline2 = text-512
titel = text-510
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
endform.
form adicionar_disponibilidade.
data:
wa_disp like line of itab_disp_30,
wa_zycbt226 like line of itab_zycbt226,
v_total type /pws/zycbe238-vldisp,
v_answer(1) type c,
v_ok(1) type c,
itab_modo type standard table of spopli,
wa_modo like line of itab_modo.
* >> Início da inclusão: FORM ADICIONAR_DISPONIBILIDADE
PERFORM verifica_bloqueio.
* << Fim da inclusão
loop at itab_zycbt226 into wa_zycbt226
where mark = 'X'.
clear:
v_total.
loop at itab_disp_30 into wa_disp
where nrseq = wa_zycbt226-nrseq.
v_total = v_total + wa_disp-vldisp.
endloop.
loop at itab_disp_70 into wa_disp
where nrseq = wa_zycbt226-nrseq.
...
...
read table itab_icon with key name = c_icon_change.
if sy-subrc = 0.
p_icone = itab_icon-id.
endif.
endcase.
endform.
form processa_disponibilidade
using p_itab_disp type t_t_disponibilidade.
data:
v_tabix type sy-tabix.
* >> Início da inclusão: FORM PROCESSA_DISPONIBILIDADE
DATA: v_ok TYPE c.
* << Fim da inclusão
field-symbols:
<fs_disp> like line of p_itab_disp.
check <fs_op> is assigned.
read table itab_zycbt007 into wa_zycbt007
with key bukrs = <fs_op>-bukrs.
read table itab_zyglt009 into wa_zyglt009
with key bukrs = <fs_op>-bukrs.
loop at p_itab_disp assigning <fs_disp>
where nrseq = <fs_op>-nrseq.
* >> Início da inclusão: FORM PROCESSA_DISPONIBILIDADE
v_ok = 'S'.
PERFORM verif_alt_fatura USING <fs_disp>
CHANGING v_ok.
IF v_ok = 'N'.
CONTINUE.
ENDIF.
* << Fim da inclusão
wa_controle-msg_cnt = wa_controle-msg_cnt + 1.
if <fs_disp>-destino eq c_70.
perform processa_contrato
using itab_contrato
<fs_disp>.
endif.
if wa_zycbt007-cont_disp = 'X'.
perform estorno_disponibilidade
changing <fs_disp>.
endif.
...
...
using '/PWS/ZYCBM'
'E'
'Campo não está preenchido.'(m13)
wa_zycbt034-campo
'-'
wa_zycbt034-descricao
'061'.
endloop.
endif.
endform.
* >> Início da inclusão:
FORM verifica_bloqueio.
DATA: wa_zycbt226 LIKE LINE OF itab_zycbt226.
CHECK sy-tcode EQ c_transacao_c OR
sy-tcode EQ c_transacao_a.
LOOP AT itab_zycbt226 INTO wa_zycbt226
WHERE mark = 'X'.
CALL FUNCTION '/PWS/ZYCB_ENQUEUE_ZYCBT017V'
EXPORTING
nrinvoic = wa_zycbt226-nrinvoic
nrparcf = wa_zycbt226-nrparcf
gsberf = wa_zycbt226-gsberf
EXCEPTIONS
foreign_lock = 1
system_failure = 2.
CASE sy-subrc.
WHEN 1.
CLEAR ok_code.
MESSAGE e061 WITH text-070 wa_zycbt226-nrinvoic
text-071.
CLEAR wa_zycbt226-mark.
MODIFY itab_zycbt226 FROM wa_zycbt226.
WHEN 2.
MESSAGE a015 WITH text-066.
ENDCASE.
ENDLOOP.
ENDFORM.
FORM verif_alt_fatura USING p_disp TYPE t_disponibilidade
CHANGING p_ok.
DATA: wa_zycbt017 TYPE t_s_zycbt017,
v_saldo TYPE /pws/zycbt017-vlslf.
CHECK NOT p_disp-operacao IS INITIAL.
READ TABLE itab_zycbt017 INTO wa_zycbt017
WITH KEY nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf.
SELECT SINGLE vlslf
FROM /pws/zycbt017
INTO v_saldo
WHERE nrinvoic = <fs_op>-nrinvoic
AND nrparcf = <fs_op>-nrparcf
AND gsberf = <fs_op>-gsberf.
IF wa_zycbt017-vlslf NE v_saldo.
p_ok = 'N'.
CASE p_disp-operacao.
WHEN c_novo.
PERFORM message_store USING
'/PWS/ZYCBM'
'E'
text-070
<fs_op>-nrinvoic
text-072
text-073
'061'.
WHEN c_excluido.
PERFORM message_store USING
'/PWS/ZYCBM'
'E'
text-070
<fs_op>-nrinvoic
text-072
text-074
'061'.
ENDCASE.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB009
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 514
Texto: (6 caracteres)
"Fatura"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 515
Texto: (28 caracteres)
"alterada pela Disp. Faturas."
Comprimento máximo: 28
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 516
Texto: (23 caracteres)
"Gravação não permitida."
Comprimento máximo: 23
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB034
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 070
Texto: (6 caracteres)
"Fatura"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 071
Texto: (29 caracteres)
"bloqueada por outro processo."
Comprimento máximo: 29
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 072
Texto: (28 caracteres)
"alterada por outro processo."
Comprimento máximo: 28
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 073
Texto: (23 caracteres)
"Inclusão não efetivada."
Comprimento máximo: 23
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 074
Texto: (23 caracteres)
"Exclusão não efetivada."
Comprimento máximo: 23