Módulo: DRAWBACK
Funcionalidade: Forecast
Data/Hora da Publicação: 24/07/2007 00:00:00
Data/Hora Última Alteração: 01/03/2010 17:41:03
Descrição da Nota: EXPLOSÃO DA LISTA TÉCNICA MULTINÍVEL
Sintoma
O programa não está explodindo a Lista Técnica em todos os níveis.
Solução
Criada consistencia para verificar se a lista técnica esta ativa.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04265 Data: 24/07/2007 Hora: 15:43:26
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04265
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00005
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
EXPLOSÃO DA LISTA TÉCNICA MULTINÍVEL
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPLOSÃO LISTA TÉCNICA NIVEIS /PWS/ZYCIR106 FORECAST
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCIR106
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR106
...
werks LIKE marc-werks ,
stlan LIKE stpox-stlan,
stlnr LIKE stpo-stlnr ,
stlal LIKE stpox-stlal,
capid LIKE tc04-capid .
DATA: END OF it_materiais.
DATA : BEGIN OF i_mat OCCURS 0,
matnr LIKE mara-matnr,
werks LIKE marc-werks,
mtart LIKE mara-mtart,
* >> Início da inclusão:
stlal TYPE mast-stlal,
* << Fim da inclusão
qtde type /pws/zycit245-qtd_iten,
meins LIKE mara-meins,
postp LIKE stpo-postp.
DATA : END OF i_mat.
DATA : BEGIN OF i_final OCCURS 0,
insumo LIKE mara-matnr,
produto LIKE stpox-idnrk,
centro LIKE stpox-werks,
ncm LIKE marc-steuc,
qtunit type /pws/zycit245-qtd_iten,
...
...
pnivel.
ENDLOOP.
EXPORT i_final TO MEMORY ID idmemory2.
FREE MEMORY ID idmemory1.
ELSE.
FREE MEMORY ID idmemory2.
ENDIF.
ENDIF.
FORM f_lista_tecnica USING v_item v_centro v_mtart
v_dtval v_tipo v_meins v_prim_nivel.
* >> Início da inclusão: FORM F_LISTA_TECNICA
DATA: BEGIN OF itab_t415s OCCURS 0.
DATA: stlst TYPE t415s-stlst.
DATA: END OF itab_t415s.
DATA: BEGIN OF itab_list OCCURS 0.
DATA: stlst TYPE stko-stlst,
stlal TYPE mast-stlal.
DATA: END OF itab_list.
SELECT stlst FROM t415s INTO TABLE itab_t415s
WHERE kzbdp EQ 'X' AND
kzpaf EQ 'X' AND
kzklf EQ 'X' AND
kzapf EQ 'X' AND
kzauf EQ 'X' .
* << Fim da inclusão
CLEAR i_mat.
REFRESH i_mat.
i_mat-matnr = v_item.
i_mat-werks = v_centro.
i_mat-mtart = v_mtart.
i_mat-qtde = 1.
i_mat-meins = v_meins.
APPEND i_mat.
LOOP AT i_mat.
v_qtdeaux = i_mat-qtde.
REFRESH i_stb.
CLEAR i_stb.
* >> Início da inclusão: FORM F_LISTA_TECNICA
IF NOT i_mat-stlal IS INITIAL.
v_stlal = i_mat-stlal.
ENDIF.
* << Fim da inclusão
IF NOT i_mat-mtart IS INITIAL AND i_mat-mtart EQ wa_zycit321-mtart.
PERFORM f_explosao USING i_mat-werks
wa_zycit321-capid1
wa_zycit321-stlan1
v_dtval.
ELSE.
PERFORM f_explosao USING i_mat-werks
wa_zycit321-capid2
wa_zycit321-stlan2
v_dtval.
ENDIF.
* >> Início da exclusão: FORM F_LISTA_TECNICA
v_stlal = '01'.
* << Fim da exclusão
IF sy-subrc NE 0 OR i_stb[] IS INITIAL.
IF v_tipo EQ space AND sy-subrc EQ 5 OR
v_tipo EQ space AND sy-subrc EQ 7 OR
( i_stb[] IS INITIAL and sy-subrc EQ 0 ).
i_final-produto = v_item.
i_final-insumo = i_mat-matnr.
i_final-centro = i_mat-werks.
i_final-qtunit = i_mat-qtde.
i_final-meins = i_mat-meins.
SELECT SINGLE a~steuc INTO i_final-ncm
...
...
APPEND i_mat.
ENDIF.
ELSE.
v_centro = i_stb-werks.
PERFORM f_busca_centro USING i_stb-idnrk v_centro.
i_mat-matnr = i_stb-idnrk.
i_mat-werks = v_centro.
i_mat-mtart = i_stb-mtart.
i_mat-qtde = v_quant.
i_mat-meins = i_stb-meins.
* >> Início da inclusão: FORM F_LISTA_TECNICA
REFRESH itab_list.
CLEAR: itab_list, itab_t415s.
SELECT b~stlst b~stlal FROM mast AS a INNER JOIN stko AS b ON
a~stlnr EQ b~stlnr AND
a~stlal EQ b~stlal
INTO TABLE itab_list
WHERE a~matnr EQ i_stb-idnrk
AND a~werks EQ v_centro.
LOOP AT itab_list.
READ TABLE itab_t415s WITH KEY stlst = itab_list-stlst.
IF sy-subrc EQ 0.
exit.
ENDIF.
ENDLOOP.
IF NOT itab_t415s IS INITIAL.
i_mat-stlal = itab_list-stlal.
* << Fim da inclusão
APPEND i_mat.
* >> Início da inclusão: FORM F_LISTA_TECNICA
ELSE.
i_final-produto = v_item.
i_final-insumo = i_stb-idnrk.
i_final-centro = i_stb-werks.
i_final-qtunit = v_quant.
i_final-meins = i_stb-meins.
SELECT SINGLE a~steuc INTO i_final-ncm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ i_final-produto
AND a~steuc NE space
AND b~land1 EQ t001w-land1.
PERFORM carrega_umncm_real USING i_final-insumo
CHANGING i_final-meins
i_final-qtunit.
IF NOT i_final-qtunit IS INITIAL.
COLLECT i_final.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM.
FORM f_explosao USING v_centro v_capid v_stlan v_dtval.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
altvo = 'X'
capid = v_capid
...