CE PLUS - Nota 003862

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 06/06/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:12:46

Descrição da Nota: EMBARQUE - ADMISSÃO TEMPORÁRIA

Sintoma

Quando preenche baixa na Pasta Baixa T.R. não está atualizando o Saldo do Item na Pasta Saldo T.R.

Quando elimina itens também não atualiza.

 

 

Solução

Quando inclui/elimina itens no Embarque ou Baixa deve atualizar o Saldo do Item. E quando eliminar

itens do Embarque deve também eliminar da tabela /PWS/ZYCIT396.

 

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PERFORMANCE DA TRANSAÇÃO /PWS/ZYCI001_A ESTÁ CONSUMINDO MUITA MEMÓRIA.

Informações Complementares

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

Nota Número 03862 Data: 06/06/2007 Hora: 15:39:32

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

 

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

Nota Número              : 03862

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00169

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

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

01940  - 00001 - 6.0    - 00024  - PERFORMANCE DA TRANSAÇÃO /PWS/ZYCI001_A ESTÁ CONSUMINDO MUITA MEM

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

EMBARQUE - ADMISSÃO TEMPORÁRIA

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

Palavras Chave:

SALDO; T.R.; QUANTIDADE; BAIXA

 

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001O01

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

  ENDIF.

  MODIFY /pws/zycit125 FROM TABLE itab_zycit125.

  LOOP AT itab_zycit125_aux.

    READ TABLE itab_zycit125 WITH KEY

                     lifnr = itab_zycit125_aux-lifnr.

    IF sy-subrc NE 0.

      DELETE FROM /pws/zycit125 WHERE nrseq = /pws/zycie001-nrseq

                           AND lifnr = itab_zycit125_aux-lifnr.

    ENDIF.

  ENDLOOP.

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

  IF NOT itab_zycit003_del[] IS INITIAL.

    LOOP AT itab_zycit003_aux2.

      DELETE FROM /pws/zycit374

             WHERE nrseq EQ itab_zycit003_aux2-nrseq

             AND   ebeln EQ itab_zycit003_aux2-ebeln

             AND   ebelp EQ itab_zycit003_aux2-ebelp.

      DELETE FROM /pws/zycit396

             WHERE nrseq EQ itab_zycit003_aux2-nrseq

             AND   ebeln EQ itab_zycit003_aux2-ebeln

             AND   ebelp EQ itab_zycit003_aux2-ebelp.

    ENDLOOP.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit003 WHERE qtd_iten EQ 0.

  ENDLOOP.

  IF sy-subrc EQ 0.

    v_msg = 'X' .

  ENDIF.

  IF v_msg EQ 'X'.

    MESSAGE i015 WITH text-261 text-260.

    DELETE itab_zycit003 WHERE qtd_iten EQ '0'.

  ENDIF.

  LOOP AT itab_zycit003.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

        /pws/zycie374-descr       TO itab_zycit374-descr,

        /pws/zycie374-qtd_iten    TO itab_zycit374-qtd_iten,

        /pws/zycie374-meins       TO itab_zycit374-meins,

        /pws/zycie374-slqtde      TO itab_zycit374-slqtde.

  MOVE:               mark          TO itab_zycit374-mark    .

  MODIFY itab_zycit374 INDEX tc_ped_tr-current_line.

ENDMODULE.

MODULE altera_itab_zycit374_it INPUT.

  DATA: v_indiceaux LIKE /pws/zycit396-indice.

  CLEAR v_saldo.

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

  IF NOT /pws/zycie396-qtd_iten IS INITIAL.

* << Fim da inclusão

  v_tot_qtd_baixa = v_tot_qtd_baixa + /pws/zycie396-qtd_baixa.

  /pws/zycie396-slqtde = /pws/zycie396-qtd_iten - v_tot_qtd_baixa.

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

    IF /pws/zycie396-slqtde < 0.

* << Fim da inclusão

* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT374_IT

  IF v_saldo < 0.

    MESSAGE w015 WITH text-208 text-209.

    CLEAR:

           itab_zycit396-slqtde,

           itab_zycit396-qtd_baixa,

           /pws/zycit374-qtd_baixa,

           /pws/zycit374-slqtde.

* << Fim da exclusão

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

      MESSAGE i015 WITH text-208 text-209.

* << Fim da inclusão

* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT374_IT

    CLEAR: /pws/zycie396-qtd_baixa.

* << Fim da exclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  /pws/zycie396-meins = v_um.

  /pws/zycie396-nrseq = /pws/zycie001-nrseq.

  MOVE-CORRESPONDING /pws/zycie396 TO itab_zycit396.

  IF /pws/zycie396-indice IS INITIAL.

    SELECT SINGLE MAX( indice ) FROM /pws/zycit396

    INTO v_indiceaux

...

 

...

  DELETE itab_zycit396aux WHERE nrseq = /pws/zycie396-nrseq AND

                                ebelp = /pws/zycie396-ebelp AND

                                ebeln = /pws/zycie396-ebeln.

  MOVE-CORRESPONDING /pws/zycie396 TO itab_zycit396aux.

  APPEND itab_zycit396aux.

  SELECT * FROM /pws/zycit396

      INTO TABLE itab_zycit396_aux

      WHERE nrseq = /pws/zycie396-nrseq

       AND  ebeln = /pws/zycie396-ebeln

       AND  ebelp = /pws/zycie396-ebelp

* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT374_IT

       AND  indice = tc_bx_itens-current_line.

* << Fim da exclusão

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

       AND  indice = itab_zycit396-indice.

* << Fim da inclusão

  IF NOT itab_zycit396_aux[] IS INITIAL.

    DELETE FROM /pws/zycit396

    WHERE nrseq = /pws/zycie396-nrseq

       AND  ebeln = /pws/zycie396-ebeln

       AND  ebelp = /pws/zycie396-ebelp

* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT374_IT

       AND  indice = tc_bx_itens-current_line.

* << Fim da exclusão

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

       AND  indice = itab_zycit396-indice.

* << Fim da inclusão

  ENDIF.

  IF ( NOT itab_zycit396-nrseq  IS INITIAL AND

       NOT itab_zycit396-ebeln  IS INITIAL AND

       NOT itab_zycit396-ebelp  IS INITIAL AND

       NOT itab_zycit396-indice IS INITIAL AND

       NOT itab_zycit396-qtd_baixa IS INITIAL ).

    INSERT /pws/zycit396 FROM /pws/zycie396.

  ENDIF.

ENDMODULE.

MODULE consiste_itend INPUT.

...

 

...

  SELECT SINGLE land1 FROM t001 INTO v_land1 WHERE

  bukrs = /pws/zycie001-bukrs.

  IF v_land1 EQ 'BR' AND /pws/zycie001-j_1bbranch IS INITIAL.

    MESSAGE e013 WITH text-221.

  ENDIF.

  SET PARAMETER ID 'BKR' FIELD /pws/zycie001-bukrs.

ENDMODULE.

MODULE user_command_0110 INPUT.

  MOVE: v_tot_qtd_baixa TO itab_zycit374-qtd_baixa.

  /pws/zycie374-slqtde = /pws/zycie374-qtd_iten - v_tot_qtd_baixa.

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

  CLEAR: itab_zycit396, itab_zycit374, v_tot_qtd_baixa .

  LOOP AT itab_zycit374 WHERE mark EQ 'X'.

  ENDLOOP.

  IF sy-subrc EQ 0.

    LOOP AT itab_zycit396.

      ADD itab_zycit396-qtd_baixa TO v_tot_qtd_baixa .

    ENDLOOP.

      itab_zycit374-qtd_baixa = v_tot_qtd_baixa.

      itab_zycit374-slqtde  = itab_zycit374-qtd_iten - v_tot_qtd_baixa.

      MODIFY itab_zycit374 TRANSPORTING qtd_baixa slqtde

                                  WHERE ebelp = itab_zycit374-ebelp

                                    AND ebeln = itab_zycit374-ebeln.

  ENDIF.

  MOVE v_tot_qtd_baixa TO /pws/zycie374-qtd_baixa.

* << Fim da inclusão

ENDMODULE.

MODULE clear_variavel INPUT.

  FREE itab_zycit396_aux.

  CLEAR: v_tot_qtd_baixa.

  REFRESH itab_zycit396.

ENDMODULE.

MODULE busca_desc_agrupamento INPUT.

  CLEAR v_agrup.

  IF NOT /pws/zycie003-agrupamento IS INITIAL.

    SELECT SINGLE agrupamento

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001O01

 

...

  ENDIF.

  CLEAR: v_qtditen.

  IF NOT itab_zycit374[] IS INITIAL AND

         itab_zycit396_aux1[] IS INITIAL.

    SELECT * FROM /pws/zycit396 INTO TABLE itab_zycit396_aux1

    FOR ALL ENTRIES IN itab_zycit374

    WHERE nrseq = itab_zycit374-nrseq AND

          ebelp = itab_zycit374-ebelp AND

          ebeln = itab_zycit374-ebeln.

  ENDIF.

* >> Início da exclusão: MODULE LOAD_ZYCIT374

  LOOP AT itab_zycit374.

    v_idx374 = sy-tabix.

    LOOP AT itab_zycit396_aux1

      WHERE nrseq = itab_zycit374-nrseq AND

            ebelp = itab_zycit374-ebelp AND

            ebeln = itab_zycit374-ebeln.

      v_qtditen = v_qtditen + itab_zycit396_aux1-qtd_baixa.

    ENDLOOP.

    itab_zycit374-qtd_baixa = v_qtditen.

    MODIFY itab_zycit374 INDEX v_idx374.

    CLEAR:itab_zycit396_aux1, v_qtditen.

  ENDLOOP.

* << Fim da exclusão

ENDMODULE.

MODULE move_dados OUTPUT.

  READ TABLE itab_zycit374 WITH KEY mark = 'X'.

  IF sy-subrc = 0.

    MOVE-CORRESPONDING itab_zycit374 TO /pws/zycie374.

  ELSE.

    IF ts_adm-activetab = 'FC_BX_TR'.

      MESSAGE i015 WITH text-030.

      ts_adm-activetab = 'FC_SD_TR'.

    ENDIF.

...