Módulo: DRAWBACK
Funcionalidade: Parâmetros
Data/Hora da Publicação: 04/05/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:08:30
Descrição da Nota: PERMITE O REPETIR O INSUMO NO MESMO GRUPO COM RANGER DE DATA DIFERENTE
Sintoma
O programa não permite que um mesmo insumo seja cadastrado para um determinado grupo mesmo com rager
de data diferente.
Solução
Ajustar o programa para permitir o cadastrado do mesmo insumo diversas vezes para o mesmo grupo com
ranger de datas diferentes.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03613 Data: 04/05/2007 Hora: 07:37:43
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03613
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00164
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02190 - 00001 - 6.0 - 00025 - TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNA
----------------------------------------------------------------------------------------------------
PERMITE O REPETIR O INSUMO NO MESMO GRUPO COM RANGER DE DATA DIFERENTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
INSUMO - ALTERNATIVO - ITEM - GENÉRICO - /PWS/ZYCIR342
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/ZYCIR342 0102
DYNP /PWS/ZYCIR342 0200
REPS /PWS/ZYCIR342F01
REPS /PWS/ZYCIR342I01
REPS /PWS/ZYCIR342O01
REPS /PWS/ZYCIR342TOP
REPT /PWS/ZYCIR342
TABD /PWS/ZYCIT433
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/ZYCIR342 0102
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
*Campos modificados
*De.
+ TC_INSUMO
Tabel 3 1 85 85 22
Seleção linha=Simples, Seleção coluna=Simples
TabEntr., Com título, Configurável, Coluna marc., LSep.horiz., LnhSep.vert.
*Para.
*De.
- /PWS/ZYCIE433-MATNR
I/O 1 1 18 18 1 CHAR X Ent Off
MAT
Chave externa, Botão EntrsPoss.stand., Elem.TC
Saída de conversão=MATN1
*Para.
*De.
- /PWS/ZYCIE433-DTDE
I/O 1 3 10 10 1 DATE X Ent Off
Entr.obrig., Botão EntrsPoss.stand., Elem.TC
*Para.
- /PWS/ZYCIE433-DTDE
I/O 1 3 10 10 1 DATS X Off
Botão EntrsPoss.stand., Elem.TC
*De.
- /PWS/ZYCIE433-DTATE
I/O 1 4 10 10 1 DATE X Ent Off
Entr.obrig., Botão EntrsPoss.stand., Elem.TC
*Para.
- /PWS/ZYCIE433-DTATE
I/O 1 4 10 10 1 DATS X Off
Botão EntrsPoss.stand., Elem.TC
*Inclusão:
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
*Botões
BTN1
Push 23 3 15 15 1 CHAR
ADD
BTN2
Push 23 20 18 18 1 CHAR
MOD
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/ZYCIR342 0200
*Criar tela 0200:
Descrição breve Adiciona Item
Idioma original P
Tipo tela Tela diálogo modal
Tela seguin 0200
Manter dados Desativado
Fonte equidistante Desativado
Compressão tmp.exec. Ativado
Tela-modelo Desativado
Manter posição de rola Desativado
Posição cursor
Grp.telas
Linhas/colunas Ocupds 5 / 34
Atual. 6 / 45
*Layout
....+...10....+...10....+...30....+...40....+
001 Material __________________>
002 Valido de: __________>
003 Valido até: __________>
004
005 __________ Cancelar
006
*Atributos dos campos:
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
/PWS/ZYCIE433-MATNR
Texto 1 1 15 15 1 CHAR X 2
Chave externa
/PWS/ZYCIE433-MATNR
I/O 1 17 18 18 1 CHAR X Ent Off
MAT
Chave externa, Botão EntrsPoss.stand.
Saída de conversão=MATN1
/PWS/ZYCIE433-DTDE
Texto 2 1 10 10 1 CHAR X F
/PWS/ZYCIE433-DTDE
I/O 2 17 10 10 1 DATS X Ent Off
Botão EntrsPoss.stand.
/PWS/ZYCIE433-DTATE
Texto 3 1 11 11 1 CHAR X F
/PWS/ZYCIE433-DTATE
I/O 3 17 10 10 1 DATS X Ent Off
Botão EntrsPoss.stand.
BTN1
Push 5 7 10 10 1 CHAR Off
OK
BTN2
Push 5 23 8 8 1 CHAR
CANC E
*Código de fonte:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
PROCESS AFTER INPUT.
MODULE: USER_COMMAND_0200,
user_command_exit at exit-command.
----------------------------------------------------------------------------------------------------
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
DELETE ADJACENT DUPLICATES FROM itab_insumo
COMPARING matnr.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_INSUMOS
SORT itab_insumo BY matnr dtde.
* << 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.
FORM deleta_insumo.
DATA: v_matnr_d TYPE mara-matnr.
CLEAR: v_matnr_d.
SELECT SINGLE matnr
FROM /pws/zycit279
...
...
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
ENDFORM.
FORM grava.
SORT itab_zycit433_s BY grupo matnr.
DELETE ADJACENT DUPLICATES FROM itab_zycit433_s.
DELETE /pws/zycit433 FROM TABLE itab_zycit433_d.
MODIFY /pws/zycit433 FROM TABLE itab_zycit433_s.
ENDFORM.
* >> Início da inclusão:
FORM verifica_inclus.
DATA: v_mensagem(50) TYPE c,
v_exist TYPE c.
CHECK NOT /pws/zycie433-dtde IS INITIAL
AND NOT /pws/zycie433-dtate IS INITIAL.
CLEAR: itab_zycit433_s.
READ TABLE itab_zycit433_s WITH KEY matnr = /pws/zycie433-matnr.
IF sy-subrc EQ 0.
LOOP AT itab_zycit433_s
WHERE matnr EQ /pws/zycie433-matnr
AND ( ( dtde >= /pws/zycie433-dtde
AND dtde <= /pws/zycie433-dtate )
OR ( dtate >= /pws/zycie433-dtde
AND dtate <= /pws/zycie433-dtate ) ).
IF v_modifica EQ 'X'.
CHECK itab_insumo-item NE itab_zycit433_s-item OR
itab_insumo-grupo NE itab_zycit433_s-grupo.
ENDIF.
v_exist = 'X'.
EXIT.
ENDLOOP.
IF v_exist EQ 'X'.
MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.
EXIT.
ENDIF.
ENDIF.
IF v_modifica NE 'X'.
SELECT SINGLE a~steuc b~meins
INTO (/pws/zycie433-j_1bnbm, /pws/zycie433-meins)
FROM ( marc AS a INNER JOIN mara AS b ON
a~matnr EQ b~matnr )
WHERE a~matnr EQ /pws/zycie433-matnr
AND a~steuc NE space.
IF itab_grupo-j_1bnbm NE /pws/zycie433-j_1bnbm.
CLEAR v_mensagem.
CONCATENATE text-009 /pws/zycie433-matnr text-012
INTO v_mensagem SEPARATED BY space.
MESSAGE i015 WITH v_mensagem itab_insumo-j_1bnbm text-014.
EXIT.
ENDIF.
IF itab_grupo-meins NE /pws/zycie433-meins.
CLEAR v_mensagem.
CONCATENATE text-009 /pws/zycie433-matnr text-013
INTO v_mensagem SEPARATED BY space.
MESSAGE i015 WITH v_mensagem /pws/zycie433-meins text-014.
EXIT.
ENDIF.
SELECT SINGLE maktx FROM makt
INTO /pws/zycie433-maktx
WHERE matnr EQ /pws/zycie433-matnr.
IF /pws/zycie433-dtde > /pws/zycie433-dtate.
MESSAGE i015 WITH text-015.
EXIT.
ENDIF.
CLEAR: itab_insumo.
SORT itab_insumo DESCENDING BY item.
READ TABLE itab_insumo WITH KEY matnr = /pws/zycie433-matnr.
ADD 1 TO itab_insumo-item.
MOVE:
itab_grupo-grupo TO /pws/zycie433-grupo ,
itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,
itab_grupo-meins TO /pws/zycie433-meins,
itab_grupo-desc_g TO /pws/zycie433-desc_g,
itab_insumo-item TO /pws/zycie433-item.
APPEND /pws/zycie433 TO itab_insumo.
APPEND /pws/zycie433 TO itab_zycit433_s.
ELSE.
itab_zycit433_s = /pws/zycie433.
MODIFY itab_zycit433_s TRANSPORTING dtde dtate
WHERE item EQ itab_insumo-item
AND matnr EQ itab_insumo-matnr
AND grupo EQ itab_insumo-grupo.
PERFORM move_insumos.
ENDIF.
LEAVE TO SCREEN 0.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342I01
...
ENDIF.
PERFORM deleta_insumo.
ENDCASE.
WHEN 'SAVE'.
PERFORM pergunta USING text-001
text-002
CHANGING v_resposta.
IF v_resposta EQ '1'.
PERFORM grava.
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0100
WHEN 'ADD'.
BTN1 = text-023.
wa_zycit433 = /pws/zycie433.
CLEAR: /pws/zycie433, v_modifica.
CALL SCREEN 0200 STARTING AT 1 1 .
/pws/zycie433 = wa_zycit433.
WHEN 'MOD'.
READ TABLE itab_insumo WITH KEY mark = 'X'.
IF sy-subrc EQ 0.
BTN1 = text-024.
wa_zycit433 = /pws/zycie433.
/pws/zycie433 = itab_insumo.
v_modifica = 'X'.
CALL SCREEN 0200 STARTING AT 1 1 .
/pws/zycie433 = wa_zycit433.
ENDIF.
* << Fim da inclusão
WHEN 'EXIT'.
PERFORM pergunta USING text-001
text-017
CHANGING v_resposta.
IF v_resposta EQ '1'.
PERFORM grava.
ENDIF.
IF v_resposta NE 'A'.
LEAVE PROGRAM.
ENDIF.
...
...
AND grupo = /pws/zycie433-grupo.
ENDIF.
ENDMODULE.
MODULE marca_l102 INPUT.
READ TABLE itab_insumo INDEX tc_insumo-current_line.
IF sy-subrc EQ 0 .
itab_insumo-mark = v_mark.
MODIFY itab_insumo INDEX tc_insumo-current_line.
ENDIF.
ENDMODULE.
* >> Início da inclusão:
MODULE user_command_0200 INPUT.
CASE sy-ucomm .
WHEN 'OK'.
PERFORM verifica_inclus.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
MODULE user_command_exit INPUT.
CASE sy-ucomm .
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342O01
...
MODULE tela_102 OUTPUT.
IF NOT /pws/zycie433-matnr IS INITIAL.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE433-MATNR'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
* >> Início da inclusão:
MODULE status_0200 OUTPUT.
IF v_modifica EQ 'X'.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE433-MATNR'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR342TOP
...
mark TYPE c .
DATA: END OF itab_grupo.
DATA: BEGIN OF itab_insumo OCCURS 0.
INCLUDE STRUCTURE /pws/zycit433.
DATA: mark TYPE c .
DATA: END OF itab_insumo.
DATA: v_ini TYPE c ,
v_mark TYPE c ,
v_okcode TYPE sy-ucomm ,
v_tela(4) TYPE c VALUE '0101' ,
* >> Início da inclusão:
wa_zycit433 type /pws/zycit433 ,
v_modifica type c ,
BTN1(15) type c ,
* << Fim da inclusão
v_pasta TYPE sy-ucomm VALUE 'TS_GR' ,
v_confirm(1) TYPE c VALUE 'N' ,
v_resposta TYPE c .
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR342
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 023
Texto: (9 caracteres)
"Adicionar"
Comprimento máximo: 9
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 024
Texto: (9 caracteres)
"Modificar"
Comprimento máximo: 10
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT433
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp.
...
GRUPO CHAR4 CHAR 4
* >> Início da inclusão:
ITEM NUMC4 NUMC 4
* << Fim da inclusão
DESC_G MAKTX CHAR 40
J_1BNBM J_1BNBMCO1 T604F CHAR 16
...
...
...
...