CE PLUS - Nota 009294

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 30/10/2009 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:59:00

Descrição da Nota: AJUSTADO TRATAMENTO PARA ABERTURA OU FECHAMENTO DO CAMPO DEPÓSITO.

Sintoma

No recebimento de pedido com classificação contabil o campo depósito está fechado porém está

exibindo mensgem de erro no batch-input da migo informando que o campo depósito não está preenchido.

 

 

Solução

Ajustado tratamento de abertura do o campo depósito no recebimento para ficar de acordo com o

realizado pela MIGO.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NO MODO EXIBIÇÃO, ALGUMAS FUNCIONALIDADES FICAM COM CAMPO ABERTO

AO MODIFICAR EMBARQUE DE UM PEDIDO, PERMITE CRIAR RECEBIMENTO POR FORA

DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA

NÃO ATUALIZA DADOS DO LOTE CORRETAMENTE

Informações Complementares

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

Nota Número 09294 Data: 30/10/2009 Hora: 14:37:46

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

 

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

Nota Número              : 09294

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

05840  - 00001 - 7.0    - 00004  - NÃO ATUALIZA DADOS DO LOTE CORRETAMENTE

08318  - 00002 - 7.0    - 00009  - DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA

08430  - 00003 - 7.0    - 00009  - NO MODO EXIBIÇÃO, ALGUMAS FUNCIONALIDADES FICAM COM CAMPO ABERTO

09210  - 00004 - 8.0    - 00001  - AO MODIFICAR EMBARQUE DE UM PEDIDO, PERMITE CRIAR RECEBIMENTO POR

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

AJUSTADO TRATAMENTO PARA ABERTURA OU FECHAMENTO DO CAMPO DEPÓSITO.

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

Palavras Chave:

RECEBIMENTO - TRATAMENTO - CAMPO - DEPÓSITO - FECHAR - ABRIR

/PWS/SAPMZYCI017

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

Objetos da nota:

REPS /PWS/MZYCI017F01

REPS /PWS/MZYCI017F03

REPS /PWS/MZYCI017O01

REPS /PWS/MZYCI017X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F01

 

...

        AND  a~ebeln     = b~ebeln

        AND  a~ebelp     = b~ebelp

      INTO CORRESPONDING FIELDS OF TABLE itab_zycit044

        WHERE a~nrseqnf   = /pws/zycie043-nrseq

          AND a~nfglobal  = /pws/zycie043-nfglobal

          AND a~nfremessa = /pws/zycie043-nfremessa

          AND a~docnum    = /pws/zycie043-docnum.

    IF NOT itab_zycit044[] IS INITIAL.

      PERFORM lock_pedido .

      SELECT ebeln ebelp matnr lgort knttp

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

             werks sobkz

* << Fim da inclusão

             FROM ekpo INTO TABLE itab_deposito

             FOR ALL ENTRIES IN itab_zycit044

             WHERE ebeln = itab_zycit044-ebeln

               AND ebelp = itab_zycit044-ebelp.

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

      PERFORM verif_lote.

* << Fim da inclusão

    ENDIF.

    CLEAR: v_tabix.

    CLEAR itab_deposito.

    LOOP AT itab_deposito.

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

      IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

      IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

        CLEAR itab_zycit044.

        READ TABLE itab_zycit044 WITH KEY ebeln = itab_deposito-ebeln

                                          ebelp = itab_deposito-ebelp.

        IF sy-subrc = 0.

          v_tabix = sy-tabix.

          IF NOT /pws/zycie044-lgort IS INITIAL.

            MOVE: /pws/zycie044-lgort TO itab_zycit044-lgort,

                  /pws/zycie044-lgort TO itab_deposito-lgort.

            MODIFY itab_zycit044 INDEX v_tabix.

            MODIFY itab_deposito INDEX v_tabix.

...

 

...

    READ TABLE itab_nf INDEX v_pos.

    MOVE-CORRESPONDING itab_nf TO /pws/zycie041.

    FREE itab_zycit042.

    SELECT * FROM /pws/zycit042

      INTO CORRESPONDING FIELDS OF TABLE itab_zycit042

        WHERE nrseqnf   = /pws/zycie041-nrseq

          AND nfglobal  = /pws/zycie041-nfglobal

          AND docnum    = /pws/zycie041-docnum .

    IF NOT itab_zycit042[] IS INITIAL.

      SELECT ebeln ebelp matnr lgort knttp

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

             werks sobkz

* << Fim da inclusão

             FROM ekpo INTO TABLE itab_deposito

             FOR ALL ENTRIES IN itab_zycit042

             WHERE ebeln = itab_zycit042-ebeln

               AND ebelp = itab_zycit042-ebelp.

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

      PERFORM verif_lote.

* << Fim da inclusão

    ENDIF.

    CLEAR: v_tabix.

    CLEAR itab_deposito.

    LOOP AT itab_deposito.

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

      IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

      IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

        CLEAR itab_zycit042.

        READ TABLE itab_zycit042 WITH KEY ebeln = itab_deposito-ebeln

                                          ebelp = itab_deposito-ebelp.

        IF sy-subrc = 0.

          v_tabix = sy-tabix.

          IF itab_zycit042-lgort IS INITIAL AND

             NOT itab_deposito-lgort IS INITIAL.

            MOVE itab_deposito-lgort TO itab_zycit042-lgort.

            MODIFY itab_zycit042 INDEX v_tabix.

          ELSE.

...

 

...

      ENDLOOP.

    ENDIF.

    IF v_sair NE space.

      EXIT.

    ENDIF.

    CLEAR v_receb.

    IF v_existe_nfr EQ 'S'.

      LOOP AT itab_zycit044 WHERE lgort IS initial.

        READ TABLE itab_deposito WITH KEY ebeln = itab_zycit044-ebeln

                                    ebelp = itab_zycit044-ebelp.

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

        IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

        IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

          v_receb = 'X'.

        ENDIF.

      ENDLOOP.

    ELSE.

      LOOP AT itab_zycit042 WHERE lgort IS initial.

        READ TABLE itab_deposito WITH KEY ebeln = itab_zycit042-ebeln

                                    ebelp = itab_zycit042-ebelp.

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

        IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

        IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

          v_receb = 'X'.

        ENDIF.

      ENDLOOP.

    ENDIF.

    IF v_receb = 'X' AND /pws/zycie001-regime NE '16'

                     AND /pws/zycie001-regime NE '13' .

      MESSAGE w015 WITH text-044.

    ELSEIF /pws/zycie001-regime EQ '16' AND /pws/zycie001-tpdecl = 'DI'.

      MESSAGE i015 WITH text-108 text-113 text-109 text-110.

    ELSEIF /pws/zycie001-regime EQ '13'

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F03

 

...

* >> Início da inclusão:

FORM verif_lote.

  DATA: itab_t134m TYPE t134m OCCURS 0 WITH HEADER LINE,

        v_kzwes TYPE t156-kzwes,

        v_bwart TYPE t156-bwart VALUE '101'.

  DATA: BEGIN OF itab_mara OCCURS 0,

         matnr TYPE mara-matnr,

         mtart TYPE mara-mtart,

        END OF itab_mara.

  DATA: BEGIN OF itab_t001w OCCURS 0,

         werks TYPE t001w-werks,

         bwkey TYPE t001w-bwkey,

        END OF itab_t001w.

  DATA: s_bwkey TYPE RANGE OF t001w-bwkey WITH HEADER LINE,

        s_mtart TYPE RANGE OF mara-mtart  WITH HEADER LINE.

  SELECT DISTINCT matnr mtart FROM mara

      INTO TABLE itab_mara

      FOR ALL ENTRIES IN itab_deposito

        WHERE matnr EQ itab_deposito-matnr.

  LOOP AT itab_mara.

    s_mtart-low    = itab_mara-mtart.

    s_mtart-sign   = 'I'.

    s_mtart-option = 'EQ'.

    APPEND s_mtart.

  ENDLOOP.

  SELECT DISTINCT werks bwkey FROM t001w

      INTO TABLE itab_t001w

      FOR ALL ENTRIES IN itab_deposito

        WHERE werks EQ itab_deposito-werks.

  LOOP AT itab_t001w.

    s_bwkey-low    = itab_t001w-bwkey.

    s_bwkey-sign   = 'I'.

    s_bwkey-option = 'EQ'.

    APPEND s_bwkey.

  ENDLOOP.

  SELECT DISTINCT * FROM t134m

      INTO TABLE itab_t134m

        WHERE bwkey IN s_bwkey

          AND mtart IN s_mtart.

  IF NOT itab_nf-bwartwe IS INITIAL.

    v_bwart = itab_nf-bwartwe.

  ENDIF.

  SELECT SINGLE kzwes FROM t156

      INTO v_kzwes

      WHERE bwart EQ v_bwart.

  LOOP AT itab_deposito.

    itab_deposito-xlort = 'X'.

    READ TABLE itab_mara  WITH KEY matnr = itab_deposito-matnr.

    READ TABLE itab_t001w WITH KEY werks = itab_deposito-werks.

    READ TABLE itab_t134m WITH KEY bwkey = itab_t001w-bwkey

                                   mtart = itab_mara-mtart.

    IF NOT itab_deposito-knttp IS INITIAL

       AND ( itab_t134m-wertu = 'X' OR itab_t134m-mengu IS INITIAL )

       AND NOT ( itab_deposito-sobkz CA 'EQ' ).

      CLEAR itab_deposito-xlort.

    ENDIF.

    IF NOT itab_deposito-knttp IS INITIAL AND

       NOT ( itab_deposito-sobkz CA 'EQ' ).

      CLEAR itab_deposito-xlort.

    ENDIF.

    IF itab_deposito-sobkz CA 'OPVW'.

      CLEAR itab_deposito-xlort.

    ENDIF.

    IF v_kzwes = 'S'.

      CLEAR itab_deposito-xlort.

    ENDIF.

    MODIFY itab_deposito.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI017O01

 

...

MODULE set_screen_tc_nfg OUTPUT.

  LOOP AT SCREEN.

    IF sy-tcode NE '/PWS/ZYCI017_E'.

      IF screen-name = '/PWS/ZYCIE042-LGORT'.

        READ TABLE itab_deposito WITH KEY ebeln = itab_zycit042-ebeln

                                        ebelp = itab_zycit042-ebelp.

        IF sy-subrc = 0.

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

          IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

          IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

            screen-input = 1.

          ENDIF.

        ENDIF.

        IF NOT /pws/zycie041-mblnr_mb01 IS INITIAL.

          screen-input = 0.

        ENDIF.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDMODULE.

MODULE set_screen_tc_nfr OUTPUT.

  LOOP AT SCREEN.

    IF screen-name = '/PWS/ZYCIE044-LGORT'.

      READ TABLE itab_deposito WITH KEY ebeln = itab_zycit044-ebeln

                                        ebelp = itab_zycit044-ebelp.

      IF sy-subrc = 0.

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

        IF itab_deposito-knttp IS INITIAL.

* << Fim da exclusão

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

        IF NOT itab_deposito-xlort IS INITIAL.

* << Fim da inclusão

          screen-input = 1.

        ENDIF.

      ENDIF.

      IF NOT /pws/zycie043-mblnr_mb01 IS INITIAL.

        screen-input = 0.

      ENDIF.

      MODIFY SCREEN.

    ENDIF.

  ENDLOOP.

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI017X01

 

...

DATA: BEGIN OF itab_deposito OCCURS 0,

      ebeln      LIKE ekpo-ebeln,

      ebelp      LIKE ekpo-ebelp,

      matnr      LIKE ekpo-matnr,

      lgort      LIKE ekpo-lgort,

      knttp      LIKE ekpo-knttp,

* >> Início da inclusão:

      werks      TYPE ekpo-werks,

      sobkz      TYPE ekpo-sobkz,

      xlort      TYPE goitem-xlort,

* << Fim da inclusão

 END OF itab_deposito.

...