Conteúdo de tabela interna numa ALV

images/thumbnail.jpg - Thumbnail

Não sei há quanto tempo é que isto está disponível mas só agora descobri que é muito fácil ver numa ALV o conteúdo de uma tabela interna durante debug.

Atalhos mágicos para menus

images/thumbnail.jpg - Thumbnail

Se tu que estás a ler isto achares que tudo o que está escrito no Abapinho é literalmente verdade, o que te vou dizer a seguir vai desiludir: quando disse mágico não quis dizer que era sobrenatural. É só uma forma mais abrilhantada de dizer que é surpreendente e inesperado. Tomei esta liberdade um bocado como quando dizes estou morto de sede e no entanto ainda estás vivo. Tendo clarificado isto, podemos continuar.

Atalho para gravar lista em ficheiro local

images/thumbnail.jpg - Thumbnail

O SAP está replecto de recantos refundidos e rebuscados raramente reconhecidos que o Abapinho se regozija por revelar.

O comando %pc é equivalente à opção de menu Sistema/Lista/Gravar/File local:

IF sem IS INITIAL em métodos booleanos

images/thumbnail.jpg - Thumbnail

O sistema do cliente onde trabalho actualmente foi finalmente actualizado para o 7.50 e, depois de tantos anos preso ao ABAP convencional, posso desfrutar as maravilhas introduzidas no 7.40.

São às dúzias essas maravilhas, e não vou começar aqui a fazer artigos sobre cada uma porque já existem artigos espalhados pela net sobre quase todas elas o Abapinho faz sempre o possível por ensinar algo novo ou, pelo menos, pouco conhecido.

Mas há uma singela funcionalidade que, não sendo nada de extraordinário, me agrada: já não é preciso fazer IS INITIAL no comando IF quando a condição é um método que retorna um booleano.

Variantes de activação da SAAB

images/thumbnail.jpg - Thumbnail

Em tempos falámos na SAAB e nas vantagens de a utilizar para melhor conseguir analisar e descobrir problemas no nosso código. Nesse artigo não expliquei uma coisa que é realmente importante: variantes de activação.

Enhancements implícitos em estruturas de dados

images/thumbnail.jpg - Thumbnail

Já todos usámos enhancements implícitos para adicionar código ao início ou final de funções, forms ou métodos standard. Mas é menos conhecido o facto de que também podemos adicionar campos a estruturas de dados, estejam elas declaradas como TYPES ou ou directamente como DATA.

Comentário sobre comentários

images/thumbnail.jpg - Thumbnail

Na escola aprende-se que o código deve ter sempre comentários. Depois, na vida real, descobrimos que nem toda a gente prestou atenção na escola.

Sempre tive o cuidado de comentar os vários passos do meu código, especialmente as partes mais obscuras ou que não são auto-explicativas.

Mas depois de ler o livro Clean Code do Uncle Bob, a minha opinião mudou. Hoje acredito que quanto menos comentários melhor. E no entanto não acho que esta mudança seja contraditória.

Os vários relógios do teu sistema SAP

images/thumbnail.jpg - Thumbnail

Ainda que o SAP nos apareça como um todo, este é constituído por várias partes independentes interligadas. Há um pequeno programa standard que verifica se os relógios de cada uma destas partes estão correctos e sincronizados.

Provavelmente não será de grande utilidade no dia-a-dia. Mas não deixa de ser uma curiosidade engraçada.

Injectar comandos ABAP num sistema produtivo

images/thumbnail.jpg - Thumbnail

O vídeo abaixo demonstra como é simples criar condições para facilmente injectar comandos ABAP em programas em produtivo.

Ponderei sobre partilhar este vídeo pois o seu conteúdo pode ser usado para fins menos nobres. Mas, como já aconteceu no passado, acredito que é preferivel que isto seja divulgado pois é fundamental que os administradores de sistema estejam conscientes desta possibilidade e protejam os seus sistemas dela. Pois é algo verdadeiramente perigoso.

Transporta uma tabela local com os ecrãs de manutenção

images/thumbnail.jpg - Thumbnail

Criaste uma tabela e os seus ecrãs de manutenção como objectos locais.

Quando mais tarde te arrependeres e decidires transportar a tabela, como fazes para os transportar também os ecrãs de manutenção?

Transportar só o grupo de funções não chega, vai dar erro.