CE PLUS - Nota 003089

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 13/02/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:06:24

Descrição da Nota: SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMBARQUE

Sintoma

Sistema está se perdendo e selecionando faturas eliminadas no embarque.

Ajustado estorno de fatura.

 

 

Solução

Verificar as duas tabelas ao selecionar a fatura.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE

Informações Complementares

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

Nota Número 03089 Data: 13/02/2007 Hora: 11:19:56

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

 

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

Nota Número              : 03089

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00151

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

Referência às notas relacionadas:

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

 

02944  - 00001 - 6.0    - 00026  - EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE

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

SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMBARQUE

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

Palavras Chave:

SELECIONANDO FATURAS - FATURAS ELIMINADAS - FLAG TABELA

/PWS/ZYCIT263 - /PWS/ZYCIT006

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003O01

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

    PERFORM carrega_saldo.

    PERFORM lock_pedido.

    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

           eliminado = space.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

    FREE itab_itens_aux.

    CLEAR itab_itens_aux.

    SELECT ekko~ebeln ekko~inco1 ekko~spras

           ekpo~ebelp ekpo~txz01 ekpo~menge ekpo~ktmng ekpo~bstyp

           ekpo~meins ekpo~ntgew ekpo~gewei ekpo~netpr ekpo~bednr

           ekpo~uebto ekpo~uebtk ekpo~loekz ekpo~elikz ekpo~j_1bnbm

           ekpo~werks ekko~lifnr ekpo~j_1bmatuse ekpo~matnr ekpo~mtart

           ekpo~mfrnr

           FROM ( ekpo INNER JOIN ekko ON ekpo~ebeln = ekko~ebeln )

     INTO TABLE itab_itens_aux

...

 

...

  e_status = v_status_s.

  READ TABLE itab_zycit003 WITH KEY mark = 'X'.

  MOVE: itab_zycit003-lifnr TO v_lifnr,

        itab_zycit003-waers TO v_moeda.

  IF NOT itab_zycit003[] IS INITIAL.

    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.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit003 WHERE mark EQ 'X'.

    IF v_lifnr NE itab_zycit003-lifnr.

      MESSAGE i015 WITH text-070.

      v_flag_loop = 'X'.

      EXIT.

    ENDIF.

    IF v_moeda NE itab_zycit003-waers.

      MESSAGE s015 WITH text-237 text-238.

      v_flag_loop = 'X'.

...

 

...

      WHERE ebeln = itab_zycit003-ebeln

        AND ebelp = itab_zycit003-ebelp.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    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

           eliminado = space.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          UPDATE /pws/zycit263 SET  eliminado        = 'X'

                    WHERE nrseq     = itab_zycit263-nrseq

                    AND ebeln       = itab_zycit263-ebeln

                    AND ebelp       = itab_zycit263-ebelp

                    AND nrseq_pgfat = itab_zycit263-nrseq_pgfat.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

    SELECT * FROM /pws/zycit013

      INTO TABLE itab_zycit013

      FOR ALL ENTRIES IN itab_zycit003 WHERE

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

    PERFORM carrega_saldo.

    PERFORM lock_pedido.

  ENDIF.

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

MODULE verifica_peso INPUT.

ENDMODULE.

MODULE atualiza_itens INPUT.

  IF NOT itab_zycit003[] IS INITIAL.

    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

           eliminado = space.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.

    PERFORM verifica_itens.

  ELSE.

    PERFORM verifica_itens_da.

  ENDIF.

  IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.

    MESSAGE w061 WITH text-004 itab_zycit003-ebelp

                      text-005 itab_zycit003-ebeln.

    v_mexit = 'X'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

      FREE itab_zycit263_aux.

      CLEAR itab_zycit263_aux.

      REFRESH itab_zycit263_aux.

      IF NOT itab_zycit003_aux[] IS INITIAL.

        SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263_aux

             FOR ALL ENTRIES IN itab_zycit003_aux WHERE

             nrseq = itab_zycit003_aux-nrseq AND

             ebeln = itab_zycit003_aux-ebeln AND

             ebelp = itab_zycit003_aux-ebelp AND

             eliminado = space.

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

        IF NOT itab_zycit263[] IS INITIAL.

          SELECT * FROM /pws/zycit006

            INTO TABLE itab_zycit006

            FOR ALL ENTRIES IN itab_zycit263

            WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

          LOOP AT itab_zycit263.

            v_tabix = sy-tabix.

            READ TABLE itab_zycit006 WITH KEY

                 nrseq_pgfat = itab_zycit263-nrseq_pgfat

                 eliminado   = space.

            IF sy-subrc NE 0.

              DELETE itab_zycit263 INDEX v_tabix.

            ENDIF.

          ENDLOOP.

        ENDIF.

* << Fim da inclusão

      ENDIF.

      CLEAR v_flag_saldo.

      LOOP AT itab_zycit003_aux.

        CLEAR vsaldo.

        LOOP AT itab_zycit263_aux WHERE

             nrseq = itab_zycit003_aux-nrseq AND

             ebeln = itab_zycit003_aux-ebeln AND

             ebelp = itab_zycit003_aux-ebelp AND

             eliminado = space.

          vsaldo = vsaldo + itab_zycit263_aux-qtd_iten.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

ENDFORM.

FORM calc_vlreal.

  REFRESH: itab_zycit263.

  IF NOT itab_zycit003[] IS INITIAL.

    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

             eliminado = space.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          itab_zycit263-eliminado = 'X' .

          MODIFY itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit003.

    v_idx = sy-tabix.

    CLEAR: tqtd, tvlr, tntg, tfre, tseg.

    LOOP AT itab_zycit263 WHERE ebeln = itab_zycit003-ebeln AND

                                ebelp = itab_zycit003-ebelp.

      tfre = tfre + itab_zycit263-vlfre_fat.

      tseg = tseg + itab_zycit263-vlseg_fat.

      tntg = tntg + itab_zycit263-ntgew.

      tqtd = tqtd + itab_zycit263-qtd_iten.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

        FOR ALL ENTRIES IN itab_matuse

         WHERE matnr EQ itab_matuse-matnr.

    ENDIF.

    REFRESH itab_zycit263.

    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

             eliminado = space.

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

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_zycit003.

      READ TABLE itab_matuse WITH KEY ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

      READ TABLE itab_mara WITH KEY matnr = itab_matuse-matnr.

      IF sy-subrc EQ 0.

        IF itab_zycit003-mfrpn IS INITIAL.

          MOVE itab_mara-mfrpn TO itab_zycit003-mfrpn.

          MODIFY itab_zycit003.

        ENDIF.

      ENDIF.

...