Substitui valor de campo numa tabela interna
Agora que o ABAP tem compreensions há uma série de super poderes que nem sempre são evidentes. Aqui vou ensinar-te a mudar o valor de um único campo em todos, vários ou um registos de uma tabela interna.
Quem lançou a excepção?
As excepções podem ir sendo passadas para trás, de método em método, e serem apanhadas por um método que não tem nada a ver com o método que a lançou. E como o descobres?
Atributos que são variáveis globais disfarçadas
Não há coisa pior do que ver código a abusar das variáveis. São tão delicadas e no entanto tão mal tratadas, coitadas. E a quem as tem de ler. A pior forma de tratar uma variável é fazê-la global. Parece mentira mas em 2025 este crime continua a flagelar os nossos sistemas. Ora aqui está uma forma de lhes mostrar amor.
Odeio números mágicos
Quem trabalha em SAP acha normal que tudo seja representado por números e códigos obscuros que não significam nada. Mas não tem de ser assim. Pára com isso! Cria códigos que os seres humanos entendam por favor.
VALUE #( ) mais nada
Uma vez queria testar uma classe cujo construtor recebia vários parâmetros em que cada um pedia uma instância de um interface diferente. Essas instâncias não eram fáceis de criar e não eram relevantes para o teste. Depois de alguma experimentação descobri uma forma de contornar o problema.
Testa implicitamente os métodos booleanos
Lembrete singelo. Pensei que já fosse óbvio mas continuo a ver muitos IFs que testam explicitamente o resultado de um método booleano contra ABAP_TRUE ou INITIAL. Não é preciso! O ABAP neste caso é esperto.
Obrigado, Martin Jonen
É bom encontrar pares igualmente interessados em melhorar e evoluir, não só como programador mas também como ser humano. Recentemente encontrei um.
Executa código após um COMMIT
Lembras-te como o CALL FUNCTION IN UPDATE TASK permitia adiar algumas acções até ao momento do COMMIT?
Tech Radar
FILTER
A função FILTER é nova e ainda pouco conhecida. Vou dar-te um exemplo de como pode ser usada.
Define uma ponto de partida para o ATC
Sabes que podes definir um ponto de partida para o ATC e que isso te permite correr o ATC em código legacy?
Kintsugi
Quando no Japão se quebra um objecto de porcelana, às vezes, em vez de o deitarem fora, remendam-no. Mas não remendam de qualquer maneira; É com ouro. Esta técnica chama-se Kintsugi.
Porquê sempre MODIFY?
É hábito em ABAP usar o MODIFY em vez de INSERT e UPDATE. Costumas fazê-lo? Explica-me porquê. É preguiça? É medo? É na base do “já agora”? Ou é mais na base do “caga nisso”?
Sobre janelas partidas
A teoria das janelas partidas diz que, se uma janela de um prédio for partida e não for reparada rapidamente, as pessoas ficam tentadas a atirar pedras e partir as outras janelas.
