CE PLUS - Nota 013990

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 02/06/2014 00:00:00

Data/Hora Última Alteração: 03/06/2014 14:17:27

Descrição da Nota: AJUSTE PARA TRATAR O FECHAMENTO DO CAMPO N CONTAINERS NA MIGO

Sintoma

Ao executar o recebimento de um item com lote e preencher o campo 'num.container' ocorre erro no

batch input informando que o campo está fechado.

 

 

Solução

Ajustado programa para fechar o campo numero de container no PWCE conforme parametrização no SAP,

tabela TQSS1, campo KZGEB.

 

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

QUANDO TEM TEMPO MÍNIMO RESTANTE DE VALIDADE NÃO ABRE DATA DE PRODUÇÃO

VERIFICAÇÃO DE CERTIFICADO PARA PROCESSO COM LOTE

Informações Complementares

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

Nota Número 13990 Data: 02/06/2014 Hora: 09:21:26

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

 

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

Nota Número              : 13990

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00007

Agrupamento              : 00171

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

Referência às notas relacionadas:

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

 

12077  - 00001 - 8.0    - 00011  - QUANDO TEM TEMPO MÍNIMO RESTANTE DE VALIDADE NÃO ABRE DATA DE PRO

12730  - 00002 - 9.0    - 00002  - VERIFICAÇÃO DE CERTIFICADO PARA PROCESSO COM LOTE

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

AJUSTE PARA TRATAR O FECHAMENTO DO CAMPO N CONTAINERS NA MIGO

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

Palavras Chave:

RECEBIMENTO - CAMPO - NUMERO - CONTAINERS - FECHADO - MIGO

/PWS/SAPMZYCI017

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

Objetos da nota:

REPS /PWS/MZYCI017O01

REPS /PWS/MZYCI017F02

REPS /PWS/MZYCI017F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI017O01

 

...

      ELSEIF screen-name = '/PWS/ZYCIE223-CERTIFICADO'.

        screen-input     = '1'.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-LOTE'.

        IF NOT v_suj_lote IS INITIAL.

          screen-input     = '1'.

        ELSE.

          screen-input     = '0'.

        ENDIF.

        MODIFY SCREEN.

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

      ELSE.

* << Fim da exclusão

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

      ELSEIF screen-name NE '/PWS/ZYCIE223-NRVOLUME' AND

             screen-name NE '/PWS/ZYCIE223-TPVOLUME'.

* << Fim da inclusão

        screen-input     = '1'.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ELSE.

    PERFORM verifica_validade.

    LOOP AT SCREEN.

      IF screen-name = '/PWS/ZYCIE223-DT_PRODUCAO' OR

          screen-name = '/PWS/ZYCIE223-DT_VENCTO'.

        IF NOT v_validade IS INITIAL.

...

 

...

      ELSEIF screen-name = '/PWS/ZYCIE223-CERTIFICADO'.

        screen-input     = '1'.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-LOTE'.

        IF NOT v_suj_lote IS INITIAL.

          screen-input     = '1'.

        ELSE.

          screen-input     = '0'.

        ENDIF.

        MODIFY SCREEN.

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

      ELSE.

* << Fim da exclusão

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

      ELSEIF screen-name NE '/PWS/ZYCIE223-NRVOLUME' AND

             screen-name NE '/PWS/ZYCIE223-TPVOLUME'.

* << Fim da inclusão

        screen-input     = '1'.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ENDIF.

  v_validade_aux = v_validade.

  IF     NOT wa_zycie042 IS INITIAL.

    LOOP AT itab_zycit003 WHERE matnr EQ wa_zycie042-matnr

                            AND ebeln EQ wa_zycie042-ebeln

                            AND ebelp EQ wa_zycie042-ebelp.

...

 

...

            MODIFY SCREEN.

          ENDLOOP.

        ELSE.

          LOOP AT SCREEN.

            IF screen-name EQ '/PWS/ZYCIE223-LOTE'.

              screen-input = 1.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-QTDE'.

              screen-input = 1.

              screen-required = 1.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-NRVOLUME'.

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

              screen-input = 1.

* << Fim da exclusão

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

              IF tqss1-kzgeb EQ '+'.

                screen-required = 1.

              ELSE.

* << Fim da inclusão

              screen-required = 0.

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

              ENDIF.

* << Fim da inclusão

            ELSEIF screen-name EQ '/PWS/ZYCIE223-TPVOLUME'.

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

              SELECT SINGLE * FROM tqss1

               INTO tqss1

                WHERE werks EQ itab_zycit003-werks.

              IF sy-subrc = 0.

* << Fim da exclusão

                IF tqss1-kzgeb EQ '+'.

                  screen-input = 1.

                  screen-required = 1.

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

                ELSE.

                  screen-input = 1.

                  screen-required = 0.

                ENDIF.

* << Fim da exclusão

              ELSE.

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

                screen-input = 1.

* << Fim da exclusão

                screen-required = 0.

              ENDIF.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-LOTE_FORN'.

              screen-input = 1.

            ENDIF.

            MODIFY SCREEN.

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT SCREEN.

...

 

...

            MODIFY SCREEN.

          ENDLOOP.

        ELSE.

          LOOP AT SCREEN.

            IF screen-name EQ '/PWS/ZYCIE223-LOTE'.

              screen-input = 1.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-QTDE'.

              screen-input = 1.

              screen-required = 1.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-NRVOLUME'.

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

              screen-input = 1.

* << Fim da exclusão

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

              IF tqss1-kzgeb EQ '+'.

                screen-required = 1.

              ELSE.

* << Fim da inclusão

              screen-required = 0.

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

              ENDIF.

* << Fim da inclusão

            ELSEIF screen-name EQ '/PWS/ZYCIE223-TPVOLUME'.

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

              SELECT SINGLE * FROM tqss1

               INTO tqss1

                WHERE werks EQ itab_zycit003-werks.

              IF sy-subrc = 0.

* << Fim da exclusão

                IF tqss1-kzgeb EQ '+'.

                  screen-input = 1.

                  screen-required = 1.

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

                ELSE.

                  screen-input = 1.

                  screen-required = 0.

                ENDIF.

* << Fim da exclusão

              ELSE.

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

                screen-input = 1.

* << Fim da exclusão

                screen-required = 0.

              ENDIF.

            ELSEIF screen-name EQ '/PWS/ZYCIE223-LOTE_FORN'.

              screen-input = 1.

            ENDIF.

            MODIFY SCREEN.

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT SCREEN.

...

 

...

MODULE set_screen_0110 OUTPUT.

  DESCRIBE TABLE itab_zycit223 LINES v_linhas_110.

  tc_lote-lines = v_linhas_110 + 10.

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

  LOOP AT tc_lote-cols INTO wa_cols.

    IF wa_cols-screen-name EQ '/PWS/ZYCIE223-NRVOLUME' OR

       wa_cols-screen-name EQ '/PWS/ZYCIE223-TPVOLUME'.

      IF tqss1-kzgeb EQ space.

        wa_cols-screen-input = 0.

      ELSE.

        wa_cols-screen-input = 1.

      ENDIF.

      MODIFY tc_lote-cols FROM wa_cols.

    ENDIF.

  ENDLOOP.

* << Fim da inclusão

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F02

 

...

FORM verifica_lote.

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

  CLEAR:   itab_zycit223, wa_zycie042, wa_zycie044.

* << Fim da exclusão

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

  CLEAR:   itab_zycit223, wa_zycie042, wa_zycie044, tqss1.

* << Fim da inclusão

  REFRESH: itab_zycit223.

  LOOP AT itab_zycit042 WHERE mark = 'X'.

    MOVE itab_zycit042 TO wa_zycie042.

  ENDLOOP.

  LOOP AT itab_zycit044 WHERE mark = 'X'.

    MOVE itab_zycit044 TO wa_zycie044.

  ENDLOOP.

  IF NOT wa_zycie042 IS INITIAL.

    CLEAR: itab_zycit223-lote.

    SELECT SINGLE charg FROM eket INTO itab_zycit223-lote

...

 

...

           WHERE ebeln = wa_zycie042-ebeln

             AND ebelp = wa_zycie042-ebelp.

    SELECT SINGLE  xchpf FROM marc

           INTO v_suj_lote

          WHERE matnr EQ itab_matuse_aux3-matnr

            AND werks EQ wa_zycie042-werks.

    IF v_suj_lote IS INITIAL.

      MESSAGE w015 WITH text-256.

      EXIT.

    ENDIF.

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

    SELECT SINGLE * FROM tqss1

        WHERE werks EQ wa_zycie042-werks.

* << Fim da inclusão

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

       WHERE nrseq     = wa_zycie042-nrseq    AND

             nrseqnf   = wa_zycie042-nrseqnf  AND

             nfglobal  = wa_zycie042-nfglobal AND

             nfremessa = space                AND

             ebeln     = wa_zycie042-ebeln    AND

             ebelp     = wa_zycie042-ebelp.

  ELSEIF NOT wa_zycie044 IS INITIAL.

    CLEAR: itab_zycit223-lote.

    SELECT SINGLE charg FROM eket INTO itab_zycit223-lote

...

 

...

           WHERE ebeln = wa_zycie044-ebeln

             AND ebelp = wa_zycie044-ebelp.

    SELECT SINGLE  xchpf FROM marc

           INTO v_suj_lote

          WHERE matnr EQ itab_matuse_aux3-matnr

            AND werks EQ wa_zycie044-werks.

    IF v_suj_lote IS INITIAL.

      MESSAGE w015 WITH text-256.

      EXIT.

    ENDIF.

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

    SELECT SINGLE * FROM tqss1

        WHERE werks EQ wa_zycie044-werks.

* << Fim da inclusão

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

       WHERE nrseq     = wa_zycie044-nrseq     AND

             nrseqnf   = wa_zycie044-nrseqnf   AND

             nfglobal  = wa_zycie044-nfglobal  AND

             nfremessa = wa_zycie044-nfremessa AND

             ebeln     = wa_zycie044-ebeln     AND

             ebelp     = wa_zycie044-ebelp.

  ENDIF.

  IF sy-dynnr = '0100'.

    v_remessa = ' '.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F01

 

...

                  i_wemng      = itab_zycit031-menge

                  i_xblnr      = itab_zycie033-lfsnr

             IMPORTING

                  e_cert_active = v_cert_ativ

             EXCEPTIONS

                  OTHERS        = 1.

        IF sy-subrc NE 0 OR v_cert_ativ NE 'X'.

          CLEAR v_cert_ativ.

        ENDIF.

      ENDIF.

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

      CLEAR itab_zycit003.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit031-ebeln

                                        ebelp = itab_zycit031-ebelp.

      IF tqss1-werks NE itab_zycit003-werks.

        CLEAR tqss1.

        SELECT SINGLE * FROM tqss1

            WHERE werks EQ itab_zycit003-werks.

        tqss1-werks = itab_zycit003-werks.

      ENDIF.

* << Fim da inclusão

      READ TABLE itab_zycit223 WITH KEY ebeln = itab_zycit031-ebeln

                                        ebelp = itab_zycit031-ebelp.

      IF sy-subrc = 0.

        DELETE itab_zycit031.

      ENDIF.

      LOOP AT itab_zycit223 WHERE ebeln = itab_zycit031-ebeln AND

                                  ebelp = itab_zycit031-ebelp.

        MOVE: itab_zycit223-ebeln       TO itab_zycit031_aux-ebeln,

              itab_zycit223-ebelp       TO itab_zycit031_aux-ebelp,

              itab_zycit223-lote        TO itab_zycit031_aux-charg,

              itab_zycit223-qtde        TO itab_zycit031_aux-menge,

              itab_zycit223-nrvolume    TO itab_zycit031_aux-anzgeb,

              itab_zycit223-tpvolume    TO itab_zycit031_aux-gebeh,

              itab_zycit223-certificado TO itab_zycit031_aux-answer,

              itab_zycit223-lote_forn   TO itab_zycit031_aux-lichn,

              itab_zycit223-dt_vencto   TO itab_zycit031_aux-vfdat,

              itab_zycit223-dt_producao TO itab_zycit031_aux-hsdat.

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

        IF tqss1-kzgeb EQ space.

          CLEAR: itab_zycit031_aux-anzgeb, itab_zycit031_aux-gebeh.

        ENDIF.

* << Fim da inclusão

        IF v_cert_ativ IS INITIAL.

          CLEAR itab_zycit031_aux-answer.

        ENDIF.

        itab_zycit031_aux-tcode  = itab_zycie033-tcode.

        itab_zycit031_aux-tabela = itab_zycie033-tabela.

        itab_zycit031_aux-cpochv = itab_zycie033-cpochv.

        itab_zycit031_aux-lgort  = itab_zycit031-lgort .

        APPEND itab_zycit031_aux.

      ENDLOOP.

    ENDLOOP.

...