CE PLUS - Nota 006811

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 19/06/2008 00:00:00

Data/Hora Última Alteração: 09/03/2010 13:53:21

Descrição da Nota: VINCULAR CENTROS PRODUTIVOS E IMPRODUTIVOS NO EMBARQUE

Sintoma

 

O sistema esta permitindo vincular itens com centros diferentes mesmo que para a empresa não possua

todos os centros produtivos ou improdutivos

 

Solução

 

Atualização do programa de embarque para não permitir vincular itens com centros diferentes se a

empresa não possuor todos os centros produtivos ou não-produtivos.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 06811 Data: 19/06/2008 Hora: 13:31:51

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

 

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

Nota Número              : 06811

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00053

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VINCULAR CENTROS PRODUTIVOS E IMPRODUTIVOS NO EMBARQUE

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

Palavras Chave:

CENTRO - PRODUTIVO - IMPRODUTIVO

 

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

    LOOP AT itab_itens WHERE waers NE v_waers.

      v_waers_diferente = 'X'.

    ENDLOOP.

    IF NOT itab_zycit003[] IS INITIAL.

      LOOP AT itab_zycit003 WHERE waers NE v_waers.

        v_waers_diferente = 'X'.

      ENDLOOP.

    ENDIF.

    CLEAR v_werks_prod.

    MOVE itab_zycit003[] TO itab_werks[].

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

    PERFORM check_bukrs_ml_productive_it

            TABLES

              itab_itens

            USING

              /pws/zycie001-bukrs

            CHANGING

              v_werks_prod.

* << Fim da exclusão

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

    CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'

         EXPORTING

              i_bukrs          = /pws/zycie001-bukrs

         IMPORTING

              e_all_productive = v_werks_prod.

* << Fim da inclusão

    IF v_werks_prod IS INITIAL.

      MOVE: itab_itens-werks TO v_werks.

      LOOP AT itab_itens WHERE werks NE v_werks.

      ENDLOOP.

      IF sy-subrc EQ 0.

        MESSAGE e015 WITH text-198 text-199.

      ENDIF.

      IF NOT itab_werks[] IS INITIAL.

        LOOP AT itab_zycit003 WHERE werks NE v_werks.

        ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

      APPEND itab_werks.

    ENDLOOP.

  ELSE.

    IF v_line GT '1'.

      LOOP AT itab_da WHERE qtd_nac NE space.

        MOVE itab_da TO itab_werks .

        APPEND itab_werks.

      ENDLOOP.

    ENDIF.

  ENDIF.

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

  PERFORM check_bukrs_ml_productive

         TABLES

            itab_da

         USING

            /pws/zycie001-bukrs

          CHANGING

            v_werks_prod.

* << Fim da exclusão

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

  CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'

       EXPORTING

            i_bukrs          = /pws/zycie001-bukrs

       IMPORTING

            e_all_productive = v_werks_prod.

* << Fim da inclusão

  IF     v_werks_prod  IS INITIAL AND

     NOT itab_da-werks IS INITIAL.

    MOVE: itab_da-werks TO v_werks.

    LOOP AT itab_da WHERE werks NE v_werks

                    AND   werks NE space

                    AND   NOT qtd_nac IS initial.

    ENDLOOP.

    IF sy-subrc EQ 0.

      v_prod_dif = 'X'.

    ENDIF.

...

 

...

                             AND   ebelp     EQ itab_da_aux-ebelp.

  ENDLOOP.

  READ TABLE itab_zycit003 INDEX 1 .

  MOVE: itab_zycit003-lifnr TO v_lifnr,

        itab_zycit003-waers TO v_waers,

        itab_zycit003-waers TO /pws/zycie000-waers,

        itab_zycit003-lifnr TO /pws/zycie000-lifnr .

  LOOP AT itab_zycit003 WHERE waers NE v_waers.

    v_waers_diferente = 'X'.

  ENDLOOP.

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

  PERFORM check_bukrs_ml_productive

          TABLES

            itab_da

          USING

            /pws/zycie001-bukrs

          CHANGING

            v_werks_prod.

* << Fim da exclusão

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

  CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'

       EXPORTING

            i_bukrs          = /pws/zycie001-bukrs

       IMPORTING

            e_all_productive = v_werks_prod.

* << Fim da inclusão

  IF v_werks_prod IS INITIAL.

    MOVE: itab_zycit003-werks TO v_werks.

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

    LOOP AT itab_zycit003 WHERE werks NE v_werks

                          AND   werks NE space.

    ENDLOOP.

    IF sy-subrc EQ 0.

      v_prod_dif = 'X'.

    ENDIF.

    IF NOT itab_werks[] IS INITIAL.

      LOOP AT itab_zycit003 WHERE werks NE v_werks

                            AND   werks NE space.

      ENDLOOP.

      IF sy-subrc EQ 0.

        v_prod_dif = 'X'.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  IF v_prod_dif = 'X'.

    MESSAGE i015 WITH text-198 text-199.

    EXIT.

  ENDIF.

  IF NOT t001-land1 EQ 'CL' AND NOT t001-land1 EQ 'AR'.

    IF NOT itab_zycit003[] IS INITIAL.

      SELECT * FROM t001w INTO TABLE itab_t001w

          FOR ALL ENTRIES IN itab_zycit003

          WHERE werks = itab_zycit003-werks.

...