Módulo: DRAWBACK
Funcionalidade: Relatórios
Data/Hora da Publicação: 03/10/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 14:00:03
Descrição da Nota: TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNATIVOS
Sintoma
Na tabela /pws/zycit433, o preenchimento das datas estava incorreto, pois mesmo os materiais
alternativos vinham com as datas dos materiais e ao alterar a data de um material, essa data era
passada para o material de outro grupo.
Solução
No programa foi tirado o tratamento para preenchimento dos materiais alternativos e foi tratato a
data para considerar o grupo.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02190 Data: 03/10/2006 Hora: 11:37:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02190
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00134
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01977 - 00001 - 6.0 - 00024 - TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS
02085 - 00002 - 6.0 - 00024 - AJUSTE NA MONTAGEM DOS DADOS REFERENTES AS DATAS NA TABELA.
----------------------------------------------------------------------------------------------------
TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNATIVOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
MATNR_ALT, /PWS/ZYCIR342, DTDE, DTATE, /PWS/ZYCIT433
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCIR342
REPS /PWS/ZYCIR342F01
REPS /PWS/ZYCIR342I01
REPS /PWS/ZYCIR342O01
REPS /PWS/ZYCIR342TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342F01
FORM move_insumos.
itab_insumo[] = itab_zycit433_s[].
DELETE itab_insumo WHERE grupo NE itab_grupo-grupo.
* >> Início da exclusão: FORM MOVE_INSUMOS
LOOP AT itab_insumo.
IF itab_insumo-matnr_alt NE itab_insumo-matnr
AND NOT itab_insumo-matnr_alt IS INITIAL.
DELETE itab_insumo.
ENDIF.
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_INSUMOS
DELETE ADJACENT DUPLICATES FROM itab_insumo
COMPARING matnr.
* << Fim da inclusão
MOVE: itab_grupo-grupo TO /pws/zycie433-grupo ,
itab_grupo-desc_g TO /pws/zycie433-desc_g ,
itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,
itab_grupo-meins TO /pws/zycie433-meins .
ENDFORM.
...
...
MESSAGE i015 WITH text-005.
EXIT.
ENDIF.
IF v_resposta EQ '1'.
LOOP AT itab_zycit433_s WHERE grupo EQ itab_insumo-grupo
* >> Início da exclusão: FORM DELETA_INSUMO
AND ( matnr EQ itab_insumo-matnr
OR matnr_alt EQ itab_insumo-matnr ).
* << Fim da exclusão
* >> Início da inclusão: FORM DELETA_INSUMO
AND matnr EQ itab_insumo-matnr.
* << Fim da inclusão
itab_zycit433_d = itab_zycit433_s.
APPEND itab_zycit433_d.
DELETE itab_zycit433_s.
ENDLOOP.
* >> Início da exclusão: FORM DELETA_INSUMO
SORT itab_zycit433_d BY grupo matnr matnr_alt.
* << Fim da exclusão
* >> Início da inclusão: FORM DELETA_INSUMO
SORT itab_zycit433_d BY grupo matnr.
* << Fim da inclusão
DELETE ADJACENT DUPLICATES FROM itab_zycit433_d
* >> Início da exclusão: FORM DELETA_INSUMO
COMPARING grupo matnr matnr_alt.
* << Fim da exclusão
* >> Início da inclusão: FORM DELETA_INSUMO
COMPARING grupo matnr.
* << Fim da inclusão
DELETE itab_insumo WHERE mark EQ 'X'.
ENDIF.
ENDFORM.
FORM pergunta USING p_titulo
p_pergunta
...
...
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
ENDFORM.
FORM grava.
* >> Início da exclusão: FORM GRAVA
DATA: itab_zycit433_a1 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,
itab_zycit433_a2 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,
v_matnr_alt TYPE /pws/zycit433-matnr_alt.
REFRESH: itab_zycit433_a1, itab_zycit433_a2.
LOOP AT itab_zycit433_s.
IF itab_zycit433_s-matnr_alt NE itab_zycit433_s-matnr
AND NOT itab_zycit433_s-matnr_alt IS INITIAL.
DELETE itab_zycit433_s.
ENDIF.
ENDLOOP.
itab_zycit433_a1[] = itab_zycit433_a2[] = itab_zycit433_s[].
REFRESH itab_zycit433_s.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA
SORT itab_zycit433_s BY grupo matnr.
* << Fim da inclusão
* >> Início da exclusão: FORM GRAVA
IF NOT itab_zycit433_a1[] IS INITIAL.
SORT itab_zycit433_a2 BY grupo matnr.
DELETE ADJACENT DUPLICATES FROM itab_zycit433_a2
COMPARING grupo matnr.
LOOP AT itab_zycit433_a1.
LOOP AT itab_zycit433_a2
WHERE grupo EQ itab_zycit433_a1-grupo.
itab_zycit433_s = itab_zycit433_a2.
itab_zycit433_s-matnr = itab_zycit433_a1-matnr.
itab_zycit433_s-matnr_alt = itab_zycit433_a2-matnr.
APPEND itab_zycit433_s.
ENDLOOP.
ENDLOOP.
DELETE itab_zycit433_s WHERE matnr_alt EQ space.
SORT itab_zycit433_s BY grupo matnr matnr_alt.
* << Fim da exclusão
DELETE ADJACENT DUPLICATES FROM itab_zycit433_s.
* >> Início da exclusão: FORM GRAVA
ENDIF.
* << Fim da exclusão
DELETE /pws/zycit433 FROM TABLE itab_zycit433_d.
MODIFY /pws/zycit433 FROM TABLE itab_zycit433_s.
ENDFORM.
* >> Início da exclusão:
.
* << Fim da exclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342I01
...
ENDIF.
ENDMODULE.
MODULE user_command_0101 INPUT.
ENDMODULE.
MODULE user_command_0100 INPUT.
* >> Início da exclusão: MODULE USER_COMMAND_0100
DATA: v_resposta TYPE c.
* << Fim da exclusão
CASE v_okcode.
WHEN 'FS_GR'.
v_tela = '0101'.
v_pasta = v_okcode.
WHEN 'FS_IS'.
...
...
MESSAGE i015 WITH text-016.
EXIT.
ENDIF.
CLEAR: v_exist.
LOOP AT itab_zycit433_s
* >> Início da exclusão: MODULE PREENCHE_INSUMO
WHERE ( matnr_alt EQ /pws/zycie433-matnr or
( matnr EQ /pws/zycie433-matnr and
matnr_alt EQ space ) )
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_INSUMO
WHERE matnr EQ /pws/zycie433-matnr
* << Fim da inclusão
AND grupo NE itab_grupo-grupo
AND ( ( dtde >= /pws/zycie433-dtde
AND dtde <= /pws/zycie433-dtate )
OR ( dtate >= /pws/zycie433-dtde
AND dtate <= /pws/zycie433-dtate ) ).
v_exist = 'X'.
EXIT.
ENDLOOP.
LOOP AT itab_zycit433_s
* >> Início da exclusão: MODULE PREENCHE_INSUMO
WHERE ( matnr_alt EQ /pws/zycie433-matnr or
( matnr EQ /pws/zycie433-matnr and
matnr_alt EQ space ) )
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_INSUMO
WHERE matnr EQ /pws/zycie433-grupo
* << Fim da inclusão
AND grupo NE itab_grupo-grupo
AND ( ( dtde <= /pws/zycie433-dtde
AND dtate >= /pws/zycie433-dtate )
OR ( dtde <= /pws/zycie433-dtde
AND dtate >= /pws/zycie433-dtate ) ).
...
...
itab_zycit433_s = itab_insumo.
APPEND itab_zycit433_s.
ELSE.
CLEAR: v_exist.
LOOP AT itab_zycit433_s
* >> Início da exclusão: MODULE PREENCHE_INSUMO
WHERE ( matnr_alt EQ /pws/zycie433-matnr or
( matnr EQ /pws/zycie433-matnr and
matnr_alt EQ space ) )
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_INSUMO
WHERE matnr EQ /pws/zycie433-matnr
* << Fim da inclusão
AND grupo NE itab_grupo-grupo
AND ( ( dtde >= /pws/zycie433-dtde
AND dtde <= /pws/zycie433-dtate )
OR ( dtate >= /pws/zycie433-dtde
AND dtate <= /pws/zycie433-dtate ) ).
v_exist = 'X'.
EXIT.
ENDLOOP.
LOOP AT itab_zycit433_s
* >> Início da exclusão: MODULE PREENCHE_INSUMO
WHERE ( matnr_alt EQ /pws/zycie433-matnr or
( matnr EQ /pws/zycie433-matnr and
matnr_alt EQ space ) )
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_INSUMO
WHERE matnr EQ /pws/zycie433-grupo
* << Fim da inclusão
AND grupo NE itab_grupo-grupo
AND ( ( dtde <= /pws/zycie433-dtde
AND dtate >= /pws/zycie433-dtate )
OR ( dtde <= /pws/zycie433-dtde
AND dtate >= /pws/zycie433-dtate ) ).
...
...
/pws/zycie433-dtde TO itab_insumo-dtde,
/pws/zycie433-dtate TO itab_insumo-dtate.
MODIFY itab_insumo INDEX tc_insumo-current_line.
itab_zycit433_s = itab_insumo.
MODIFY itab_zycit433_s TRANSPORTING dtde dtate
* >> Início da exclusão: MODULE PREENCHE_INSUMO
WHERE matnr_alt EQ /pws/zycie433-matnr or
( matnr EQ /pws/zycie433-matnr and
matnr_alt EQ space ).
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_INSUMO
WHERE matnr EQ /pws/zycie433-matnr
AND grupo = /pws/zycie433-grupo.
* << Fim da inclusão
ENDIF.
ENDMODULE.
MODULE marca_l102 INPUT.
READ TABLE itab_insumo INDEX tc_insumo-current_line.
IF sy-subrc EQ 0 .
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342O01
...
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ST0100'.
SET TITLEBAR '0100'.
IF v_ini IS INITIAL.
v_ini = 'X'.
* >> Início da exclusão: MODULE STATUS_0100
SORT itab_zycit433 BY grupo matnr matnr_alt .
* << Fim da exclusão
* >> Início da inclusão: MODULE STATUS_0100
SORT itab_zycit433 BY grupo matnr.
* << Fim da inclusão
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.
itab_zycit433_s[] = itab_zycit433[].
LOOP AT itab_zycit433.
itab_grupo-grupo = itab_zycit433-grupo .
itab_grupo-desc_g = itab_zycit433-desc_g .
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342TOP
...
DATA: v_ini TYPE c ,
v_mark TYPE c ,
v_okcode TYPE sy-ucomm ,
v_tela(4) TYPE c VALUE '0101' ,
v_pasta TYPE sy-ucomm VALUE 'TS_GR' ,
* >> Início da exclusão:
v_confirm(1) TYPE c VALUE 'N' .
* << Fim da exclusão
* >> Início da inclusão:
v_confirm(1) TYPE c VALUE 'N' ,
v_resposta TYPE c .
* << Fim da inclusão