CE PLUS - Nota 007603

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CALCULO DE SALDO LI, PLI

SALDO PLI, BALANCE ORDER NA PLI E NO EMBARQUE

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

...