Módulo: DOC. IMPORTAÇÃO
Funcionalidade: LI
Data/Hora da Publicação: 19/11/2008 00:00:00
Data/Hora Última Alteração: 23/02/2011 10:03:34
Descrição da Nota: BLOQUEIO DO ITEM DO PEDIDO NA SELEÇÃO DO PROGRAMA DE LI/PLI/LSI
Sintoma
O programa não está bloqueando o item do pedido após selecionado para utilização permitindo que
outro processo utilize o pedido ocasionando problemas com saldo.
Solução
Efetuar o bloqueio ao selecionar os itens e desconciderar itens que estejam bloqueados.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07603 Data: 19/11/2008 Hora: 09:12:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07603
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00007
Agrupamento : 00074
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02236 - 00001 - 6.0 - 00025 - SALDO PLI, BALANCE ORDER NA PLI E NO EMBARQUE
07591 - 00002 - 7.0 - 00007 - CALCULO DE SALDO LI, PLI
----------------------------------------------------------------------------------------------------
BLOQUEIO DO ITEM DO PEDIDO NA SELEÇÃO DO PROGRAMA DE LI/PLI/LSI
----------------------------------------------------------------------------------------------------
Palavras Chave:
BLOQUEI - PEDIDO - ITEM - LI - LSI - PLI
/PWS/SAPMZYCI020
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI020F01
REPS /PWS/MZYCI020F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
FORM selecionar_itens.
* >> Início da inclusão: FORM SELECIONAR_ITENS
DATA: v_mess_ped TYPE c.
* << Fim da inclusão
...
...
ENDIF.
ENDLOOP.
IF NOT itab_itens[] IS INITIAL.
SELECT *
FROM /pws/zycit092
INTO TABLE it_zycit092
FOR ALL ENTRIES IN itab_itens
WHERE ebeln EQ itab_itens-ebeln
AND ebelp EQ itab_itens-ebelp.
PERFORM carrega_saldo.
* >> Início da exclusão: FORM SELECIONAR_ITENS
PERFORM lock_pedido.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS
CLEAR: v_mess_ped.
LOOP AT itab_itens.
CALL FUNCTION 'ENQUEUE_EMEKKOE'
EXPORTING
mode_ekko = 'E'
mode_ekpo = 'E'
mandt = sy-mandt
ebeln = itab_itens-ebeln
ebelp = itab_itens-ebelp
_wait = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc EQ '1'.
v_mess_ped = 'X'.
DELETE itab_itens.
ENDIF.
ENDLOOP.
IF v_mess_ped EQ 'X'.
MESSAGE i015 WITH text-443.
ENDIF.
* << Fim da inclusão
ENDIF.
CLEAR itab_itens.
READ TABLE itab_itens INDEX 1 .
MOVE: itab_itens-lifnr TO v_lifnr,
itab_itens-waers TO v_waers,
itab_itens-inco1 TO v_inco1,
itab_itens-waers TO /pws/zycie000-waers,
itab_itens-lifnr TO /pws/zycie000-lifnr.
LOOP AT itab_itens WHERE waers NE v_waers.
MESSAGE e015 WITH text-021.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
CLEAR: itab_ekpo, itab_zycit079_util.
READ TABLE itab_ekpo WITH KEY ebeln = it_zycit092-ebeln
ebelp = it_zycit092-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit079_util WHERE ebeln EQ it_zycit092-ebeln
AND ebelp EQ it_zycit092-ebelp.
SELECT SINGLE * FROM /pws/zycit078
WHERE nrseqli EQ itab_zycit079_util-nrseqli.
IF /pws/zycit078-nrseqlisub IS INITIAL AND
* >> Início da exclusão: FORM CARREGA_SALDO
/pws/zycit078-flagpli EQ /pws/zycie078-flagpli.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
/pws/zycit078-flagpli EQ /pws/zycie078-flagpli
AND /pws/zycit078-status NE 'CAN'
AND /pws/zycit078-status NE 'INA' .
* << Fim da inclusão
v_qtdemb = v_qtdemb + itab_zycit079_util-qtd_iten.
ENDIF.
ENDLOOP.
ENDIF.
v_slqtde = itab_ekpo-menge - v_qtdemb.
it_zycit092-slqtde = v_slqtde.
it_zycit092-menge = itab_ekpo-menge.
UPDATE /pws/zycit092 SET slqtde = it_zycit092-slqtde
menge = itab_ekpo-menge
WHERE ebeln = it_zycit092-ebeln
...