November 14, 2019

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!

Mauricio Cruz

é 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!

View all posts by Mauricio Cruz →

11 thoughts on “Validações simples em SM30 – Eventos

  1. 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??

  2. 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?

  3. 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?

  4. 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!

  5. Boa tarde Mauricio Cruz, pesquisando na internet achei um post igualzinho ao seu, até com os emoticons!!
    Vc ganha direitos autorais pela seu post e pelos emoticos também ? kkk

    abraço

    1. Valeu Luciano. O site que tem essa cópia é horrendo… infelizmente não tem muito o que fazer – mesmo denunciando, a galera copia de novo. O negócio é focar no nosso conteúdo e torcer pra galera beber a água “da fonte”. 🙂

      Abraços!

  6. Que m%#¥@…sao 2:42 da manhã e eu olhando como fazer validaçao de SM30, sendo que faço isso há anos. Insônia + ser abap + não ter o que ver na Internet dá nisso. Devia ter escutado minha mãe e estudado.

Leave a Reply

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