Dicas ABAP

Published on January 13th, 2011 | by Mauricio Cruz

8

Validações simples em SM30 – Eventos

Esses dias eu expliquei para uma pessoa um “esquema” que poderia salvar a vida de muitas pessoas… mas só elas conhecessem esse “esquema”.

Pergunta do milhão: quem aqui já teve que alterar o código de uma SM30 para validar alguma coisa levanta a mãooooooo!

Eu sei, eu sei… ninguém gosta, mas todo mundo já fez! 🙁

Daí vem algum panguá, entra na se11 e re-gera a sua SM30, tirando todas as chamadas de forms Z do código, e fazendo a sm30 funcionar do jeito standard… que era exatamente o que o usuário não queria!

Eu sei, eu sei… ninguém gosta mas já aconteceu com todo mundo! 🙁

Então, se você tem consistências simples, você pode minimizar esses problemas usando eventos!

Atenção: o Post ficou looooongo, mas vale a pena! Essa coisa já salvou minha vida algumas vezes!

 

Bom, você criou a tabela e gerou sua SM30. Daí você precisa fazer uma consistência sempre que o user entrar com um valor na SM30. Entre na SE11 -> Menu gerar SM30 -> Modificação -> Hora (traduçao porca! em inglês é Event)

 

Ignore o pop-up (afinal, TUDO pertence a SAP, duh). Aperte F4 na primeira coluna, e você vai ver a lista de eventos que podem disparar um FORM "Z".

 

Escolha um Evento (eu escolhi o 05, sempre que uma nova linha for inserida). Dê um nome para seu FORM e aperte ENTER. Vai aparecer aquele ícone de editor ali.

 

Pode apertar Enter na tela de nova include, porque a idéia é criar uma include separada mesmo. Um detalhe importante é que ele não vai criar o comando FORM.. ENDFORM automático. Você deve entrar na mão. CUIDADO PARA NÃO ERRAR O NOME DO FORM! 😉

 

Ative, a tabela e saia da SE11. Por precaução, verifique na SE80 se o Grupo de Funções da SM30 também foi ativado. Agora, entre na SM30, coloque uma nova linha e aperte enter… que vai parar no FORM que você criou! 😀

Agora você me pergunta: tá, e daí?

Simples! Se você re-gerar a sua SM30, tudo que você vai ter que fazer para sua lógica voltar a funcionar na nova SM30, é adicionar UMA linha de código, independente da quantidade de consistências que você fez. (claro que se a tabela foi alterada, você vai ter que ajustar a lógica.. mas isso é o de menos).

É só abrir o programa principal do grupo de funções da SM30 re-gerada, e adicionar a include que foi criada na hora que você criou o evento. Simples assim! 😀

Tem gente que insiste em alterar o código standard da SM30 para fazer as chamadas dos seus módulos ou performs Z. Cada caso é um caso… mas se for para fazer consistências simples, use eventos. Se for pra fazer muita coisa, faça um online hehe 🙄

Abraços a todos aquele que não tem medo de conhecer coisas velhas como sendo novas 😀

Até a próxima!

Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Tags: ,


About the Author

é pasteleiro há alguns anos e criou o ABAPZombie junto com o Mauro em 2010. Gosta de filosofar sobre fundamentos básicos da programação e assuntos polêmicos. Músicas estranhas, artes marciais e games indies são legais. Zumbis não. Converse comigo no twitter e conheça o meu livro de ABAP!



8 Responses to Validações simples em SM30 – Eventos

  1. William says:

    Muito bom o blog de vc´s, estão de parabéns! Fantástico!

  2. Adriano Miguel says:

    Muito bom o Post e muito com o Site , a algum tempo está em meus favoritos, parabens…

  3. rodrigo says:

    muito bom…excelente

  4. Raul Romano says:

    Gostei muito do post, já passei por momentos em que a sm30 tinha 4 eventos e eles estavam em includes diferentes (Lógico, ehehehehe), dai precisava copiar uma por uma pra poder re-gerar a sm30.

    Agora como foi dito acima, digamos que temos apenas 1 evento na sm30 dai regeramos ela, quando colocamos a chamada da include que tinha aquele único evento novamente e ele funciona é porq ficou salvo na memória todo o código do evento??

  5. Felipe Omarini says:

    Eu tenho uma duvida
    Estou configurando uma SM30 de uma tabela Z e uma das restrições é que ao clicar no botão eliminar só deve preencher um flag de eliminação e não deletar o resgistro.
    Alguem tem alguma sugestão de como se faz isso?

  6. Miguel says:

    Ola a todos.
    Fiz o evento, a validação da erro no 3º campo da minha SM30, só que ele retorna para o primeiro campo.
    Qual a forma de fazer o evento retornar para o campo que está ocorrendo o erro?

  7. Fernando says:

    Fiz um esquema parecido para incluir um botão na SM30, para exportar os dados para o Excel. Realmente dá pra mexer bastante em telas standard através desses recursos da SAP. Muito boa a postagem!

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Top ↑