Você está na página 1de 28

Criao de LOG de Modificaes em SM30

Ricardo Perrella Delivery Center Brazil - 08/2013

Criao de LOG de Modificaes em SM30


Sumrio
1 Passo Tabela Z........................................................................................................................ 3
2 Passo Criao de SM30 .......................................................................................................... 5
3 Passo Criao do Objeto de Documento de Modificao ..................................................... 6
4 Passo Alterao de Tela da SM30 ........................................................................................ 11
5 Passo Criao de Eventos na SM30 ..................................................................................... 16
6 Passo Criao de Status GUI da Tela de Atualizao ........................................................... 22
7 Passo Definio do Status Gui na SM30 .............................................................................. 25
8 Passo Codificao de Tela .................................................................................................... 27
9 Passo Visualizando um LOG de Modificaes ..................................................................... 28

Criao de LOG de Modificaes em SM30


No SAP possvel criar algumas rotinas para que se gere um LOG de modificaes de
uma determinada view de atualizao (SM30).
Qualquer alterao, incluso e deleo de registros gravada em um LOG (CDHDR e
CDPOS) para posterior visualizao atravs de relatrio Standard.

1 Passo Tabela Z
Neste exemplo usaremos a seguinte tabela:

Para que a gerao do LOG funcione preciso que TODOS os Elementos de Dados que compe
a chave da tabela estejam com o FLAG abaixo marcado:

Criao de LOG de Modificaes em SM30

Para o exemplo que iremos utilizar, s existe um campo chave com elemento de dados
ZED_MATERIAL.
Caso o elemento de dados que faz parte da chave da tabela j possua esta opo no
necessrio criar um novo Elemento de Dados, caso contrrio acesse a transao SE11 e altere
esta informao.

Criao de LOG de Modificaes em SM30


2 Passo Criao de SM30
Cria a viso de atualizao da tabela normalmente:

Criao de LOG de Modificaes em SM30


3 Passo Criao do Objeto de Documento de Modificao
Acesse a transao SCDO (Exibir objetos doc.modificao) e clique no Boto Criar:

Informe o nome do Objeto a ser criado e clique em Avanar:


Nomenclatura: ZOBJMO_*

Caso a mensagem abaixo aparea, clique em SIM:

Criao de LOG de Modificaes em SM30

Na tela Seguinte, informe os dados conforme figura abaixo:

Certifique-se de marcar as opes destacadas em amarelo na figura acima.


Cliquem em Inserir Entradas.
Na tela a seguir, V em Utilitrios -> Gerar Prog. Atualiz.

Criao de LOG de Modificaes em SM30

Caso a mensagem abaixo aparea, clique em SIM:

Preencha o Grupo de Funes e clique em Gerar:


Caso utilize o mesmo grupo de funo utilizado na criao da SM30, poder aparecer a
seguinte mensagem:

Sugiro a utilizao de outro grupo de funes.

Criao de LOG de Modificaes em SM30

Criao de LOG de Modificaes em SM30


Aps Gerar, o seguinte log mostrado.

Clique em SALVAR e saia da transao.


Nesta etapa foi criado o mdulo de funo que ser responsvel por registrar as modificaes
efetuadas na tabela.

10

Criao de LOG de Modificaes em SM30


4 Passo Alterao de Tela da SM30
Atravs da SE54 (Objetos Gerados) acesse a view de atualizao da tabela.
V em Ambiente->Modificao->Telas de atualizao

Posicione o Cursor na Tela e d Enter:

11

Criao de LOG de Modificaes em SM30

12

Criao de LOG de Modificaes em SM30


Insira as seguintes linhas nos pontos destacados:

Apenas Salve a Tela.

13

Criao de LOG de Modificaes em SM30


Acesse novamente a View atravs da SE54 s que neste momento em modo EXIBIO.

Acesse novamente a tela anteriormente acessada atravs do menu


Ambiente->Modificao->Telas de atualizao

D um duplo clique em um dos mdulos inseridos no cdigo fonte da tela para criar os
mesmos.

Sim
Insira o nome da include onde sero criados os novos mdulos e d OK.

14

Criao de LOG de Modificaes em SM30

Inclua os seguintes mdulos e Ative o Cdigo Fonte:

IMPORTANTE: Certifique-se de ativar, o INCLUDE criado, a TELA alterada e o Grupo de


Funes.

15

Criao de LOG de Modificaes em SM30


5 Passo Criao de Eventos na SM30
Acesse novamente a View atravs da SE54 em modo de Modificao.
V no menu Ambiente->Modificao->Horas

Clique em Entradas Novas e insira as seguintes rotinas:

Clique em salvar e em seguida clique no Boto Editar indicado na figura acima.


16

Criao de LOG de Modificaes em SM30


Insira o nome da include onde sero criados as novas rotinas e d OK.

Inclua as duas novas rotinas conforme abaixo:

Ative o Cdigo fonte.


Clique no Boto Exibir Lista de Objetos:

17

Criao de LOG de Modificaes em SM30


Acesse a Include TOP para declarao das variveis necessrias:

Declare as seguintes variveis:

YZTABELA do exemplo utilizado.


Salve a Ative o include.

18

Criao de LOG de Modificaes em SM30


Volte ao include com as duas rotinas criadas (LOG_MODIF e LOG_DEL)
Inclua o cdigo abaixo no FORM LOG_MODIF:
FORM log_modif.
DATA: it_ztabela TYPE STANDARD TABLE OF ztabela,
wa_ztabela TYPE ztabela,
tabix TYPE sy-tabix.
CHECK NOT it_newreg[] IS INITIAL.
*Sseleciona tabela com chave completa
SELECT *
FROM ztabela
INTO TABLE it_ztabela
FOR ALL ENTRIES IN it_newreg
WHERE material
EQ it_newreg-material.

* Gera log de modificao.


LOOP AT it_newreg INTO wa_newreg.
tabix = sy-tabix.
*l tabela com chave completa
CLEAR wa_ztabela.
READ TABLE it_ztabela INTO wa_ztabela WITH KEY material = wa_newre
g-material.
IF wa_ztabela IS INITIAL.
wa_newreg-kz = 'I'.
APPEND wa_newreg TO it_oldreg.
ELSE.
* Gera chave com registro antigo
APPEND wa_ztabela TO it_oldreg.
ENDIF.
MODIFY it_newreg FROM wa_newreg INDEX tabix.
*Monta Chave da tabela para a varivel wa_cdtxt-teilobjid
CONCATENATE wa_newreg-mandt
wa_newreg-material
INTO wa_cdtxt-teilobjid.
wa_cdtxt-updkz = wa_newreg-kz.
APPEND wa_cdtxt TO it_cdtxt.
ENDLOOP.
*Gravao no LOG
CLEAR: wacdtxt, waoldreg010, wanewreg010.

19

Criao de LOG de Modificaes em SM30


user = sy-uname.
utime = sy-uzeit.
udate = sy-datum.
*Funo Criada Atravs do Objeto de Modificao
CALL FUNCTION 'ZOBJMO_ZTABELA_WRITE_DOCUMENT'
EXPORTING
objectid
= 'ZTABELA'
tcode
= sy-tcode
utime
= utime
udate
= udate
username
= user
object_change_indicator
= <action>
upd_icdtxt_zobjmo_ztabela
= <action>
upd_ztabela
= <action>
TABLES
icdtxt_zobjmo_ztabela
= it_cdtxt
xztabela
= it_newreg
yztabela
= it_oldreg
.
REFRESH: it_oldreg, it_newreg, it_cdtxt.
ENDFORM.

20

Criao de LOG de Modificaes em SM30


Insira o cdigo abaixo no FORM LOG_DEL:
FORM log_del.
CLEAR wa_newreg.
ztabela-USER_MODIF = sy-uname.
ztabela-DATE_MODIF = sy-datum.
ztabela-HOUR_MODIF = sy-uzeit.
wa_newreg = ztabela.
wa_newreg-kz = 'D'.
APPEND wa_newreg TO it_newreg.
ENDFORM.

Salve e Ative o Include.

21

Criao de LOG de Modificaes em SM30


6 Passo Criao de Status GUI da Tela de Atualizao
Verifique o programa que foi gerado automaticamente pelo grupo de funo utilizado na
tabela, neste caso informei o SAPLZGF_ZTABELA.

Acesse a transao SE41, informe o programa SAPLSVIM e clique no boto indicado.

22

Criao de LOG de Modificaes em SM30

Informe o programa e d Enter

Aps a cpia informe o STATUS default EULG incluindo o boto de visualizao do LOG.

23

Criao de LOG de Modificaes em SM30

Crie o Boto coforme abaixo.

24

Criao de LOG de Modificaes em SM30


Repita a operao para o STATUS GUI ESLG:
Ao inserir o boto HIST e dar Enter, clique no boto
funcionalidade do mesmo.

para ativar a

7 Passo Definio do Status Gui na SM30


Acesse novamente a View atravs da SE54 em modo de Modificao.
V no menu Ambiente->Modificao->Horas

Clique em Entradas Novas e insira a seguinte rotina (Programa do Grp de Funo):

25

Criao de LOG de Modificaes em SM30

26

Criao de LOG de Modificaes em SM30


8 Passo Codificao de Tela
Entre na tela de atualizao da View e inclua a lgica abaixo nos Mdulos anteriormente
criados: CONST_MODIF e HISTORICO_MODIF
SALVE E ATIVE TUDO.
*&--------------------------------------------------------------------*
*&
Module CONST_MODIF INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE const_modif INPUT.
CLEAR wa_newreg.
ztabela-user_modif = sy-uname.
ztabela-date_modif = sy-datum.
ztabela-hour_modif = sy-uzeit.
wa_newreg
= ztabela.
wa_newreg-kz
= 'U'.
APPEND wa_newreg TO it_newreg.
ENDMODULE.

" CONST_MODIF

INPUT

*&--------------------------------------------------------------------*
*&
Module HISTORICO_MODIF INPUT
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
MODULE historico_modif INPUT.
CHECK sy-ucomm EQ 'HIST'.
SET PARAMETER ID 'CDO' FIELD 'ZOBJMO_ZTABELA'.
SET PARAMETER ID 'CDI' FIELD 'ZTABELA'.
SUBMIT rsscd100 AND RETURN.
ENDMODULE.

" HISTORICO_MODIF

INPUT

27

Criao de LOG de Modificaes em SM30


9 Passo Visualizando um LOG de Modificaes

Todo o log mostrado em um relatrio conforme figura abaixo

28