Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 13/02/2008 00:00:00
Data/Hora Última Alteração: 09/03/2010 11:51:57
Descrição da Nota: DIVERGENCIA NO EMBARQUE ENTRE CENTROS PRODUTIVOS E IMPRODUTIVOS
Sintoma
O programa do embarque não estava verificando apenas os Centros vinculados no Embarque
Solução
Atualizada vinculação de itens no embarque de nacionalização para apenas verificar centros
utilizados no embarque.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05915 Data: 13/02/2008 Hora: 14:12:51
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05915
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00035
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
DIVERGENCIA NO EMBARQUE ENTRE CENTROS PRODUTIVOS E IMPRODUTIVOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
CENTRO - PRODUTIVO - IMPRODUTIVO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001X01
----------------------------------------------------------------------------------------------------
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
CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'
EXPORTING
i_bukrs = /pws/zycie001-bukrs
IMPORTING
e_all_productive = v_werks_prod.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS
PERFORM CHECK_BUKRS_ML_PRODUCTIVE_IT
TABLES
itab_itens
USING
/pws/zycie001-bukrs
CHANGING
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.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
* >> Início da inclusão:
form CHECK_BUKRS_ML_PRODUCTIVE
TABLES pitab_itens STRUCTURE itab_da
USING
p_bukrs TYPE /pws/zycie001-bukrs
CHANGING
p_werks_prod LIKE v_werks_prod.
TABLES: CKMLV.
DATA: BEGIN OF TT_BWKEY_PRODUCTIVE OCCURS 0.
INCLUDE STRUCTURE T001K.
DATA: END OF TT_BWKEY_PRODUCTIVE.
DATA: BEGIN OF TT_BWKEY_NOT_PRODUCTIVE OCCURS 0.
INCLUDE STRUCTURE T001K.
DATA: END OF TT_BWKEY_NOT_PRODUCTIVE.
DATA: v_produtivo TYPE i,
v_improdutivo TYPE i,
v_tem_produtivo TYPE c,
v_tem_improdutivo TYPE c.
CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'
EXPORTING
i_bukrs = p_bukrs
IMPORTING
E_ALL_PRODUCTIVE = v_werks_prod
TABLES
T_BWKEY_PRODUCTIVE = TT_BWKEY_PRODUCTIVE
T_BWKEY_NOT_PRODUCTIVE = TT_BWKEY_NOT_PRODUCTIVE
.
IF sy-subrc <> 0.
ENDIF.
DESCRIBE TABLE TT_BWKEY_PRODUCTIVE LINES v_produtivo.
DESCRIBE TABLE TT_BWKEY_NOT_PRODUCTIVE LINES v_improdutivo.
IF v_produtivo > 0 AND
v_improdutivo > 0.
v_werks_prod = 'X'.
v_tem_produtivo = '0'.
v_tem_improdutivo = '0'.
LOOP AT pitab_itens.
IF v_tem_produtivo = '0' OR
v_tem_improdutivo = '0'.
READ TABLE TT_BWKEY_PRODUCTIVE WITH KEY
bwkey = pitab_itens-werks.
IF sy-subrc EQ 0.
v_tem_produtivo = '1'.
ELSE.
READ TABLE TT_BWKEY_NOT_PRODUCTIVE WITH KEY
bwkey = pitab_itens-werks.
IF sy-subrc EQ 0.
v_tem_improdutivo = '1'.
ENDIF.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
IF v_tem_produtivo = '1' AND v_tem_improdutivo = '1'.
CLEAR v_werks_prod.
ENDIF.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
FORM selecionar_itens_da.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
DATA: it_bwkey_productive LIKE t001k OCCURS 0,
it_bwkey_not_productive LIKE t001k OCCURS 0.
* << Fim da inclusão
...
...
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
CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'
EXPORTING
i_bukrs = /pws/zycie001-bukrs
IMPORTING
e_all_productive = v_werks_prod.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
PERFORM CHECK_BUKRS_ML_PRODUCTIVE
TABLES
itab_da
USING
/pws/zycie001-bukrs
CHANGING
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.
...
...
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003_da-indic_obrig TO itab_zycit003-indic_obrig ,
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003_da-indic_obrig TO itab_zycit003-indic_obrig ,
* << Fim da inclusão
itab_zycit003_da-ipi_anoemiss TO itab_zycit003-ipi_anoemiss,
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003_da-ipi_extarif TO itab_zycit003-ipi_extarif,
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003_da-ipi_extarif TO itab_zycit003-ipi_extarif,
* << Fim da inclusão
...
...
DELETE itab_zycit467_del WHERE nrseqda EQ itab_da_aux-nrseqda
AND nrseqlote EQ itab_da_aux-nrseqlote
AND nrseq EQ /pws/zycie001-nrseq
AND ebeln EQ itab_da_aux-ebeln
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,
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003-lifnr TO /pws/zycie000-lifnr.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
itab_zycit003-lifnr TO /pws/zycie000-lifnr .
* << Fim da inclusão
LOOP AT itab_zycit003 WHERE waers NE v_waers.
v_waers_diferente = 'X'.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
PERFORM CHECK_BUKRS_ML_PRODUCTIVE
TABLES
itab_da
USING
/pws/zycie001-bukrs
CHANGING
v_werks_prod.
* << Fim da inclusão
* >> Início da exclusã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 exclusão
IF v_werks_prod IS INITIAL.
MOVE: itab_zycit003-werks TO v_werks.
* >> Início da exclusã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.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
ENDIF.
* << Fim da exclusão
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.
...
...
* >> Início da inclusão:
FORM check_bukrs_ml_productive_it
TABLES p_itab_itens STRUCTURE itab_itens
USING /pws/zycie001-bukrs
CHANGING v_werks_prod.
clear: TT_BWKEY_PRODUCTIVE, TT_BWKEY_NOT_PRODUCTIVE .
refresh: TT_BWKEY_PRODUCTIVE, TT_BWKEY_NOT_PRODUCTIVE .
clear : v_produtivo ,
v_improdutivo ,
v_tem_produtivo ,
v_tem_improdutivo .
CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'
EXPORTING
i_bukrs = /pws/zycie001-bukrs
IMPORTING
e_all_productive = v_werks_prod
TABLES
t_bwkey_productive = tt_bwkey_productive
t_bwkey_not_productive = tt_bwkey_not_productive.
IF sy-subrc <> 0.
ENDIF.
DESCRIBE TABLE tt_bwkey_productive LINES v_produtivo.
DESCRIBE TABLE tt_bwkey_not_productive LINES v_improdutivo.
IF v_produtivo > 0 AND
v_improdutivo > 0.
v_werks_prod = 'X'.
v_tem_produtivo = '0'.
v_tem_improdutivo = '0'.
LOOP AT p_itab_itens.
IF v_tem_produtivo = '0' OR
v_tem_improdutivo = '0'.
READ TABLE tt_bwkey_productive WITH KEY
bwkey = p_itab_itens-werks.
IF sy-subrc EQ 0.
v_tem_produtivo = '1'.
ELSE.
READ TABLE tt_bwkey_not_productive WITH KEY
bwkey = p_itab_itens-werks.
IF sy-subrc EQ 0.
v_tem_improdutivo = '1'.
ENDIF.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
IF v_tem_produtivo = '1' AND v_tem_improdutivo = '1'.
CLEAR v_werks_prod.
ENDIF.
ENDIF.
ENDFORM. " check_bukrs_ml_productive_it
* >> Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
* >> Início da inclusão:
DATA: BEGIN OF TT_BWKEY_PRODUCTIVE OCCURS 0.
INCLUDE STRUCTURE T001K.
DATA: END OF TT_BWKEY_PRODUCTIVE.
DATA: BEGIN OF TT_BWKEY_NOT_PRODUCTIVE OCCURS 0.
INCLUDE STRUCTURE T001K.
DATA: END OF TT_BWKEY_NOT_PRODUCTIVE.
DATA: v_produtivo TYPE i,
v_improdutivo TYPE i,
v_tem_produtivo TYPE c,
v_tem_improdutivo TYPE c.
* >> Fim da inclusão
DATA: END OF COMMON PART a.