CE PLUS - Nota 006500

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 05/05/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:20:56

Descrição da Nota: AO VINCULAR PEDIDOS SEM SALDO NO EMBARQUE, DÁ DUMP

Sintoma

Ao vincular pedidos sem saldo no Embarque, dá dump

 

 

Solução

Verificar se há saldo antes de permitir vincular.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

EMBARQUE CAMPO PESO LIQUIDO ESTÁ VINDO EM BRANCO.

INCLUSÃO DA COLUNA NCM NA SELEÇÃO AUTOMATICA PARA A DI DE NACIONALIZAÇÃO

EMBARQUE: VINCULAÇÃO RECOF

AJUSTE PARA TRATAR A QUANTIDADE EXCEDIDA DE ACORDO COM A TOLERANCIA

INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.

Informações Complementares

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

Nota Número 06500 Data: 05/05/2008 Hora: 09:42:53

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

 

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

Nota Número              : 06500

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00005

Agrupamento              : 00046

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

Referência às notas relacionadas:

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

 

01450  - 00001 - 6.0    - 00023  - INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.

03080  - 00002 - 6.0    - 00026  - EMBARQUE CAMPO PESO LIQUIDO ESTÁ VINDO EM BRANCO.

04882  - 00003 - 7.0    - 00003  - AJUSTE PARA TRATAR A QUANTIDADE EXCEDIDA DE ACORDO COM A TOLERANC

05364  - 00004 - 7.0    - 00003  - EMBARQUE: VINCULAÇÃO RECOF

05811  - 00005 - 7.0    - 00004  - INCLUSÃO DA COLUNA NCM NA SELEÇÃO AUTOMATICA PARA A DI DE NACIONA

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

AO VINCULAR PEDIDOS SEM SALDO NO EMBARQUE, DÁ DUMP

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

Palavras Chave:

PEDIDO - SALDO - EMBARQUE - DUMP

 

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

Objetos da nota:

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001F01

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

                                      ebelp = itab_itens-ebelp.

    IF sy-subrc NE 0.

      MOVE-CORRESPONDING itab_itens TO itab_zycit003.

      MOVE: /pws/zycie001-nrseq TO itab_zycit003-nrseq.

      PERFORM load_pttext USING itab_itens-matnr

                                itab_itens-spras.

      CLEAR itab_zycit013.

      READ TABLE itab_zycit013 WITH KEY ebeln = itab_itens-ebeln

                                        ebelp = itab_itens-ebelp.

      IF sy-subrc EQ 0.

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

        IF ( sy-tcode EQ '/PWS/ZYCI001_C' or

             sy-tcode EQ '/PWS/ZYCI001_A' ) AND

               itab_zycit013-slqtde < 0.

          MESSAGE i015 WITH

                            text-472 itab_zycit003-ebeln

                            text-473 itab_zycit003-ebelp.

          CONTINUE.

        ENDIF.

* << Fim da inclusão

        IF itab_zycit013-menge NE itab_itens-menge.

          itab_zycit013-slqtde = itab_zycit013-slqtde +

         ( itab_itens-menge - itab_zycit013-menge ).

        ELSE.

          MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde.

        ENDIF.

        MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,

              itab_itens-menge     TO itab_zycit003-menge,

              itab_itens-uebto     TO itab_zycit003-uebto,

              itab_itens-uebtk     TO itab_zycit003-uebtk.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

 

...

          IF sy-subrc NE 0 OR itab_rc_aux-quantidade IS INITIAL.

            DELETE itab_da INDEX v_reg.

          ELSE.

            itab_da-qtd_nac = itab_rc_aux-quantidade.

            MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDIF.

    IF NOT itab_da[] IS INITIAL.

* >> Início da exclusão: FORM SELECIONAR_RC

      SELECT * FROM /pws/zycit003

      INTO TABLE itab_zycit003_saldo

      FOR ALL ENTRIES IN itab_da

       WHERE ebeln EQ itab_da-ebeln

       AND   ebelp EQ itab_da-ebelp.

      IF sy-subrc EQ 0.

        SELECT nrseq  regime FROM /pws/zycit001

         INTO TABLE itab_zycit001_saldo

        FOR ALL ENTRIES IN itab_zycit003_saldo

        WHERE nrseq  EQ itab_zycit003_saldo-nrseq

        AND   tpdecl EQ 'DI'.

        READ TABLE itab_zycit482 WITH KEY

                   processo = '1'.

        IF sy-subrc = 0.

          LOOP AT itab_zycit001_saldo WHERE regime EQ '01'.

            DELETE itab_zycit003_saldo

              WHERE nrseq EQ itab_zycit001_saldo-nrseq.

          ENDLOOP.

          LOOP AT itab_da.

            CLEAR v_qtdutil_da.

            LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln

                                        AND   ebelp EQ itab_da-ebelp.

             v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten.

            ENDLOOP.

            itab_da-qtd_nac = itab_da-qtd_lote - v_qtdutil_da.

            IF itab_da-qtd_nac LE 0.

              DELETE itab_da.

            ENDIF.

          ENDLOOP.

        ELSE.

          LOOP AT itab_zycit001_saldo WHERE regime EQ '04'.

            DELETE itab_zycit003_saldo

              WHERE nrseq EQ itab_zycit001_saldo-nrseq.

          ENDLOOP.

          LOOP AT itab_da.

            CLEAR v_qtdutil_da.

            LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln

                                        AND   ebelp EQ itab_da-ebelp.

             v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten.

            ENDLOOP.

            itab_da-qtd_nac = itab_da-qtd_nac - v_qtdutil_da.

            IF itab_da-qtd_nac LE 0.

              DELETE itab_da.

            ENDIF.

          ENDLOOP.

        ENDIF.

      ENDIF.

* << Fim da exclusão

      DESCRIBE TABLE itab_da LINES v_line.

      v_caller = 'SELECIONAR_RC'.

      SORT itab_da BY j_1bnbm.

      CALL SCREEN '0003'.

    ELSE.

      MESSAGE s015 WITH text-259 text-264.

    ENDIF.

  ENDIF.

ENDFORM.

...

 

...

    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.

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

    v_slqtde = itab_pedido-menge - v_qtdemb.

    if v_slqtde lt 0 and okcode eq 'PED'.

       delete itab_zycit003 where ebelp eq itab_zycit013-ebelp

                         and   ebeln eq itab_zycit013-ebeln.

          MESSAGE w061 WITH text-004 itab_zycit013-ebelp

                            text-005 itab_zycit013-ebeln.

    endif.

* << Fim da inclusão

    IF v_slqtde NE itab_zycit013-slqtde.

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

        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 .

      ENDIF.

      itab_zycit013-menge   = itab_pedido-menge.

      MODIFY itab_zycit013.

...

 

 

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

Textos de report

 

 

*Criados os seguintes símbolos de textos.

 

 

ID  Chave      Comprimento  Txt.

 

 I  472         15    O pedido

 I  473         30    possui saldo insuficiente item