CE PLUS - Nota 002234

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 09/10/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:59:17

Descrição da Nota: SALDO EMBARQUE

Sintoma

O embarque está com o saldo do pedido negativo negativo.

 

 

Solução

Feito o tratamento para o saldo do pedido quando entra no embarque, e criado o bloquei pelo pedido

não so pelo embarque.

Atualizado saldo do pedido do embarque, quando o schedule agreement ou o pedido de compra tiver a

quantidade alterada.

 

Versões Tratadas

6.0

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02234 Data: 09/10/2006 Hora: 11:11:36

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02234

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00134

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

SALDO EMBARQUE

----------------------------------------------------------------------------------------------------

Palavras Chave:

SALDO - EMBARQUE - NEGATIVO

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001O01

REPS /PWS/MZYCI001X01

REPT /PWS/SAPMZYCI001

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI001F03

*&---------------------------------------------------------------------*

*&      Form  carrega_saldo

*&---------------------------------------------------------------------*

 

*Perform inteiro criado

 

FORM carrega_saldo.

 

 

  CLEAR   : itab_pedido.

  REFRESH : itab_pedido.

 

  IF NOT itab_zycit013[] IS INITIAL.

    DATA: v_qtdemb TYPE /pws/zycit003-qtd_iten,

          v_slqtde TYPE /pws/zycit013-slqtde  .

 

    DATA: BEGIN OF itab_pedido_temp OCCURS 0.

    DATA: ebeln TYPE ekpo-ebeln,

          ebelp TYPE ekpo-ebelp.

    DATA: END OF itab_pedido_temp.

 

 

*    DATA: BEGIN OF itab_zycit003_util OCCURS 0.

*            INCLUDE STRUCTURE /pws/zycit003.

*    DATA: END OF itab_zycit003_util.

 

    "seleciona itens do pedido

    SELECT ebeln ebelp menge bstyp FROM ekpo           "itens do pedido

    INTO TABLE itab_pedido

    FOR ALL ENTRIES IN itab_zycit013

    WHERE ebeln EQ itab_zycit013-ebeln

      AND ebelp EQ itab_zycit013-ebelp.

 

 

    REFRESH itab_pedido_temp.

 

    LOOP AT itab_zycit013.

      READ TABLE itab_zycit003_util WITH KEY

                     ebeln = itab_zycit013-ebeln

                     ebelp = itab_zycit013-ebelp.

      IF sy-subrc NE 0.

        itab_pedido_temp-ebeln = itab_zycit013-ebeln.

        itab_pedido_temp-ebelp = itab_zycit013-ebelp.

        APPEND itab_pedido_temp.

      ENDIF.

    ENDLOOP.

    DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq.

    LOOP AT itab_zycit003 .

      itab_zycit003_util-nrseq = itab_zycit003-nrseq.

      itab_zycit003_util-ebeln = itab_zycit003-ebeln.

      itab_zycit003_util-ebelp = itab_zycit003-ebelp.

      itab_zycit003_util-qtd_iten = itab_zycit003-qtd_iten.

      APPEND itab_zycit003_util.

    ENDLOOP.

    IF NOT itab_pedido_temp[] IS INITIAL.

      SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003

    APPENDING TABLE itab_zycit003_util

        FOR ALL ENTRIES IN itab_pedido_temp

        WHERE ebeln EQ itab_pedido_temp-ebeln

          AND ebelp EQ itab_pedido_temp-ebelp

        AND nrseq NE /pws/zycie001-nrseq.

    ENDIF.

  ENDIF.

 

  LOOP AT itab_zycit013.

    CLEAR: itab_pedido, itab_zycit003_util.

    READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln

                                    ebelp = itab_zycit013-ebelp.

    IF sy-subrc EQ 0.

      CLEAR v_qtdemb.

      LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln

                                 AND   ebelp EQ itab_zycit013-ebelp.

        v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.

      ENDLOOP.

    ENDIF.

    v_slqtde = itab_pedido-menge - v_qtdemb.

    IF v_slqtde NE itab_zycit013-slqtde.

    itab_zycit013-slqtde = v_slqtde.

    UPDATE /pws/zycit013 SET slqtde  = itab_zycit013-slqtde

                             menge   = itab_pedido-menge

                       WHERE ebeln   = itab_zycit013-ebeln

                         AND ebelp   = itab_zycit013-ebelp .

    itab_zycit013-menge   = itab_pedido-menge.

    MODIFY itab_zycit013.

    ENDIF.

  ENDLOOP.

 

 

ENDFORM.                    " carrega_saldo

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

    SELECT * FROM /pws/zycit013

      INTO TABLE itab_zycit013

      FOR ALL ENTRIES IN itab_zycit003 WHERE

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

* >> Início da inclusão: FORM VERIFICA_ITENS

      perform carrega_saldo.

* << Fim da inclusão

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

...

 

...

    SELECT * FROM /pws/zycit013

      INTO TABLE itab_zycit013

      FOR ALL ENTRIES IN itab_zycit003 WHERE

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

* >> Início da inclusão: FORM SELECIONA_EMBARCACAO

      perform carrega_saldo.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln

                                      ebelp = itab_zycit003-ebelp.

    MOVE:  itab_zycit013-slqtde TO itab_zycit003-slqtde,

...

 

...

    SELECT * FROM /pws/zycit013

      INTO TABLE itab_zycit013

      FOR ALL ENTRIES IN itab_zycit003 WHERE

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

* >> Início da inclusão: FORM RECUPERANDO_ITENS

      perform carrega_saldo.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln

                                      ebelp = itab_zycit003-ebelp.

    MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,

...

 

...

        AND a~ebelp = itab_itens-ebelp.

    SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013

           FOR ALL ENTRIES IN itab_itens WHERE

           ebeln = itab_itens-ebeln AND

           ebelp = itab_itens-ebelp.

* >> Início da inclusão: FORM SELECIONAR_ITENS

      perform carrega_saldo.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_itens.

    CLEAR itab_zycit003.

    READ TABLE itab_zycit003 WITH KEY nrseq = /pws/zycie001-nrseq

                                      ebeln = itab_itens-ebeln

...

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI001O01

 

...

      ENDIF.

      IF NOT itab_zycit003[] IS INITIAL.

        SELECT * FROM /pws/zycit013 FOR ALL ENTRIES IN itab_zycit003

          WHERE ebeln EQ itab_zycit003-ebeln

            AND ebelp EQ itab_zycit003-ebelp.

* >> Início da inclusão: MODULE USER_COMMAND_0001

      perform carrega_saldo.

* << Fim da inclusão

          MOVE: /pws/zycit013-slqtde TO itab_zycit003-slqtde,

                /pws/zycit013-menge TO itab_zycit003-menge.

          MODIFY itab_zycit003.

        ENDSELECT.

      ENDIF.

...

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

...

* >> Início da inclusão

data: begin of itab_pedido occurs 0.

data:   ebeln type ekpo-ebeln,

        ebelp type ekpo-ebelp,

        menge type ekpo-menge,

        bstyp type ekpo-bstyp.

data: end of itab_pedido.

 

DATA: BEGIN OF itab_zycit003_util OCCURS 0.

DATA: nrseq    TYPE /pws/zycit003-nrseq,

      ebeln    TYPE /pws/zycit003-ebeln,

      ebelp    TYPE /pws/zycit003-ebelp,

      qtd_iten TYPE /pws/zycit003-qtd_iten,

      regime   type /pws/zycit001-regime  .

DATA: END OF itab_zycit003_util.

 

* << Fim da inclusão

 

DATA: END OF COMMON PART A.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/SAPMZYCI001

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 324

 

Texto: (31 caracteres)

"The order is already been used."

 

Comprimento máximo: 40

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 324

 

Texto: (32 caracteres)

"Pedido já está sendo processado!"

 

Comprimento máximo: 40

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 325

 

Texto: (24 caracteres)

"Only allowed exhibition."

 

Comprimento máximo: 27

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 325

 

Texto: (27 caracteres)

"Permitida somente exibição."

 

Comprimento máximo: 27