tutorial - criação de log de modificações em sm30

28
Criação de LOG de Modificações em SM30 1 – Delivery Center Brazil - 08/2013 Ricardo Perrella

Upload: janaina

Post on 12-Jan-2016

152 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

1

– Delivery Center Brazil - 08/2013Ricardo Perrella

Page 2: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

2

Sumário

1º Passo – Tabela Z ........................................................................................................................ 3

2º Passo – Criação de SM30 .......................................................................................................... 5

3º Passo – Criação do Objeto de Documento de Modificação ..................................................... 6

4º Passo – Alteração de Tela da SM30 ........................................................................................ 11

5º Passo – Criação de Eventos na SM30 ..................................................................................... 16

6º Passo – Criação de Status GUI da Tela de Atualização ........................................................... 22

7º Passo – Definição do Status Gui na SM30 .............................................................................. 25

8º Passo – Codificação de Tela .................................................................................................... 27

9º Passo – Visualizando um LOG de Modificações ..................................................................... 28

Page 3: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

3

No SAP é possível criar algumas rotinas para que se gere um LOG de modificações de

uma determinada view de atualização (SM30).

Qualquer alteração, inclusão e deleção de registros é gravada em um LOG (CDHDR e

CDPOS) para posterior visualização através de relatório Standard.

1º Passo – Tabela Z

Neste exemplo usaremos a seguinte tabela:

Para que a geração do LOG funcione é preciso que TODOS os Elementos de Dados que compõe

a chave da tabela estejam com o FLAG abaixo marcado:

Page 4: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

4

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 opção não é

necessário criar um novo Elemento de Dados, caso contrário acesse a transação SE11 e altere

esta informação.

Page 5: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

5

2º Passo – Criação de SM30

Cria a visão de atualização da tabela normalmente:

Page 6: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

6

3º Passo – Criação do Objeto de Documento de Modificação

Acesse a transação SCDO (Exibir objetos doc.modificação) e clique no Botão Criar:

Informe o nome do Objeto a ser criado e clique em Avançar:

Nomenclatura: ZOBJMO_*

Caso a mensagem abaixo apareça, clique em SIM:

Page 7: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

7

Na tela Seguinte, informe os dados conforme figura abaixo:

Certifique-se de marcar as opções destacadas em amarelo na figura acima.

Cliquem em Inserir Entradas.

Na tela a seguir, Vá em Utilitários -> Gerar Prog. Atualiz.

Page 8: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

8

Caso a mensagem abaixo apareça, clique em SIM:

Preencha o Grupo de Funções e clique em Gerar:

Caso utilize o mesmo grupo de função utilizado na criação da SM30, poderá aparecer a

seguinte mensagem:

Sugiro a utilização de outro grupo de funções.

Page 9: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

9

Page 10: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

10

Após Gerar, o seguinte log é mostrado.

Clique em SALVAR e saia da transação.

Nesta etapa foi criado o módulo de função que será responsável por registrar as modificações

efetuadas na tabela.

Page 11: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

11

4º Passo – Alteração de Tela da SM30

Através da SE54 (Objetos Gerados) acesse a view de atualização da tabela.

Vá em Ambiente->Modificação->Telas de atualização

Posicione o Cursor na Tela e dê Enter:

Page 12: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

12

Page 13: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

13

Insira as seguintes linhas nos pontos destacados:

Apenas Salve a Tela.

Page 14: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

14

Acesse novamente a View através da SE54 só que neste momento em modo EXIBIÇÃO.

Acesse novamente a tela anteriormente acessada através do menu Ambiente->Modificação->Telas de atualização

Dê um duplo clique em um dos módulos inseridos no código fonte da tela para criar os

mesmos.

Sim

Insira o nome da include onde serão criados os novos módulos e dê OK.

Page 15: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

15

Inclua os seguintes módulos e Ative o Código Fonte:

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

Funções.

Page 16: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

16

5º Passo – Criação de Eventos na SM30

Acesse novamente a View através da SE54 em modo de Modificação.

Vá no menu Ambiente->Modificação->Horas

Clique em Entradas Novas e insira as seguintes rotinas:

Clique em salvar e em seguida clique no Botão Editar indicado na figura acima.

Page 17: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

17

Insira o nome da include onde serão criados as novas rotinas e dê OK.

Inclua as duas novas rotinas conforme abaixo:

Ative o Código fonte.

Clique no Botão “Exibir Lista de Objetos”:

Page 18: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

18

Acesse a Include TOP para declaração das variáveis necessárias:

Declare as seguintes variáveis:

YZTABELA do exemplo utilizado.

Salve a Ative o include.

Page 19: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

19

Volte ao include com as duas rotinas criadas (LOG_MODIF e LOG_DEL)

Inclua o código 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 modificação. 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_newreg- 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 variável wa_cdtxt-tei lobjid CONCATENATE wa_newreg - mandt wa_newreg - material INTO wa_cdtxt - teilobjid . wa_cdtxt - updkz = wa_newreg - kz . APPEND wa_cdtxt TO it_cdtxt . ENDLOOP. *Gravação no LOG CLEAR: wacdtxt , waoldreg010 , wanewreg010 .

Page 20: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

20

user = sy - uname. utime = sy - uzeit . udate = sy - datum . *Função Criada Através do Objeto de Modificação 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.

Page 21: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

21

Insira o código 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.

Page 22: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

22

6º Passo – Criação de Status GUI da Tela de Atualização

Verifique o programa que foi gerado automaticamente pelo grupo de função utilizado na

tabela, neste caso informei o SAPLZGF_ZTABELA.

Acesse a transação SE41, informe o programa SAPLSVIM e clique no botão indicado.

Page 23: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

23

Informe o programa e dê Enter

,

Após a cópia informe o STATUS default EULG incluindo o botão de visualização do LOG.

Page 24: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

24

Crie o Botão coforme abaixo.

Page 25: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

25

Repita a operação para o STATUS GUI ESLG:

Ao inserir o botão HIST e dar Enter, clique no botão para ativar a funcionalidade do mesmo.

7º Passo – Definição do Status Gui na SM30

Acesse novamente a View através da SE54 em modo de Modificação.

Vá no menu Ambiente->Modificação->Horas

Clique em Entradas Novas e insira a seguinte rotina (Programa do Grp de Função):

Page 26: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

26

Page 27: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

27

8º Passo – Codificação de Tela

Entre na tela de atualização da View e inclua a lógica abaixo nos Módulos 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

Page 28: Tutorial - Criação de LOG de Modificações Em SM30

Criação de LOG de Modificações em SM30

28

9º Passo – Visualizando um LOG de Modificações

Todo o log é mostrado em um relatório conforme figura abaixo