Patrocinado por
Patrocinado por Inetum

Padrões de projecto de software em ABAP

images/thumbnail.jpg - Thumbnail
Estamos em constante aprendizagem. Mas volta não volta aprendemos algo que nos obriga a dar um salto paradigmático na forma como olhamos para o que fazemos. A última vez que isso me tinha acontecido foi quando comecei a usar OO em ABAP. OO não era novo para mim pois sempre programei em Java, C#, C++, etc. Mas poder finalmente aplicar os conceitos de OO em ABAP foi um alívio e um salto quântico na qualidade, flexibilidade e velocidade do meu trabalho.

Inibe o histórico de valores para um só campo

images/thumbnail.jpg - Thumbnail
Normalmente o SapGUI memoriza os últimos valores introduzidos em cada campo. E isso costuma ser bom. Mas podes muito bem não querer que isto aconteça. (ex: no caso, improvável eu sei, de quereres introduzir valores pornográficos num determinado campo). Uma hipótese é desligar globalmente esta funcionalidade nas configurações do SapGUI. Mas e se quiseres desligar apenas num campo? O Abapinho ensina-te.

Acrescenta parâmetros a métodos e funções standard

images/thumbnail.jpg - Thumbnail
Todos conhecemos as ampliações implícitas da SAP, que permitem adicionar código no início ou final qualquer blocos de código standard (funções, métodos, etc.). Já todos as usámos para alterar uma BAPI ou outro código standard qualquer. Mas só há pouco tempo é que descobri que também é possível usar ampliações implícitas para acrescentar parâmetros a funções e métodos ABAP standard.

ZTOAD - Editor de SQL

images/thumbnail.jpg - Thumbnail
O Toad é uma ferramenta muito famosa no mundo SQL que permite construir e executar queries SQL de forma fácil e interactiva. E agora, graças ao senhor Sébastien HERMANN, o SAP tem uma versão simplificada desta ferramenta maravilha. Ele explica. Obrigado Sérgio Fraga por descobrires isto. O Abapinho saúda-vos.

Índices secundários em tabelas internas

images/thumbnail.jpg - Thumbnail
Durante anos as tabelas internas eram declaradas assim: DATA: itbl TYPE TABLE OF bkpf.

Programa a programação dos programas

images/thumbnail.jpg - Thumbnail
Uma das coisas que distingue o homem dos restantes animais é o facto de ser capaz de pensar o pensamento. Um pardal pode pensar “estou assustado, vou dizer piu piu piu” e, como consequência, quem estiver ao pé dele ouve “piu piu piu”.

Utilizar a lista de utilizações programaticamente

images/thumbnail.jpg - Thumbnail
A ferramenta “lista de utilizações” é uma das mais queridas de um programador ABAP. Através dela conseguimos saber onde é que um objecto é utilizado. Parece pouco mas sabemos que é muito.

A classe CL_GUI_FRONTEND_SERVICES

images/thumbnail.jpg - Thumbnail
A classe CL_GUI_FRONTEND_SERVICES é frequentemente usada para fazer upload e download de ficheiros de e para o computador local. Mas ela consegue fazer muitos mais coisas boas. Por exemplo:

O SAP sabe tirar <i>selfies</i>!

images/thumbnail.jpg - Thumbnail
Acabei de descobrir que o SAP consegue tirar selfies. Ainda não estou a ver para que é que isto possa servir. Mas não é grave porque na verdade também nunca vi para que é que servem as selfies tiradas por nós os humanos. Faz-se assim:

Nunca te lembras do código ASCII do CR_LF e seus amigos?

images/thumbnail.jpg - Thumbnail
Eu também não. Nem quero lembrar-me. Para quê gastar memória com códigos obtusos? E não é preciso porque o ABAP tem uma classe que ajuda.

SELECT de um conjunto de valores conhecidos

images/thumbnail.jpg - Thumbnail
Pedem-te para seleccionares registos cujo critério é um conjunto de meia dúzia de códigos que são conhecidos e nunca vão mudar. Sabias que podes fazer tudo logo no SELECT? SELECT * INTO T_T005T FROM T005T WHERE LAND1 = I_LAND1 AND SPRAS IN ( &#39;PT&#39;, EN&#39; ). Compete-me lembrar-te que fixar valores em programas não é a melhor das ideias por isso usa isto com tino. Obrigado Sérgio Fraga pela dica.

Podes gravar variantes na SE16N

images/thumbnail.jpg - Thumbnail
E pronto, está dada a dica. Esteve sempre debaixo do teu nariz mas provavelmente nunca pensaste nisso: é possível gravar variantes na SE16N. E até podem ser específicas por utilizador. Algo tão práctico e no entanto tão pouco conhecido. Obrigado Sérgio Fraga pela dica. Obrigado Cloudtail pela foto. O Abapinho saúda-vos.

Limitar execução em background ou foreground

images/thumbnail.jpg - Thumbnail
Desenvolveste um report que sabes que demora 12 horas a correr. Por isso não queres que ninguém tente corrê-lo em foreground. Vou mostrar-te uma forma de garantires que isso não acontece.

Como sabotar textos standard

images/thumbnail.jpg - Thumbnail
Às vezes não gosto dos nomes que a SAP deu às coisas. E então mudo-os. Por exemplo, um dia estava muito zangado e achava que os clientes eram todos uns parasitas. Então fiz o seguinte:

Formata as variáveis ao concatenar strings com <i>pipes</i>

images/thumbnail.jpg - Thumbnail
A nova moda em strings é usar pipes. Tipo: str = |Olá { sy-uname }, | &amp; |a data de hoje é { sy-datum }.|. Além de ter pinta é muito mais práctico do que usar o CONCATENATE que é horrível. Mas o que eu só descobri recentemente é que é possível aplicar formatação às variáveis: