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.
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.
...