Patrocinado por
Patrocinado por Inetum

Usa BASE para não estragares o que já tens

images/thumbnail.png - Thumbnail

Dantes usava-se o comands APPEND e INSERT para adicionar linhas a tabelas internas. Mas agora que o ABAP cresceu, podemos usar VALUE, REDUCE, CORRESPONDING, etc. Mas, e se a tabela interna já tiver linhas e não as quisermos perder?

INNER JOIN em vez de FOR ALL ENTRIES

images/thumbnail.png - Thumbnail

Há uns tempos mostrei-te que podias fazer SELECT a uma tabela interna. E no outro dia perguntei-me: se isso é possível, não será então também possível fazer INNER JOINs?

YAGNI

images/thumbnail.png - Thumbnail

You Ain’t Gonna Need It em português quer dizer Faz o que quiseres, mas não digas que eu não te avisei. Estou a brincar. Não é bem isso.

Copia do SAPGUI para o clipboard

images/thumbnail.png - Thumbnail

Sabias que o teu programa ABAP pode copiar conteúdo para o clipboard do teu sistema operativo?

SELECT a tabela interna

images/thumbnail.jpg - Thumbnail

Agora dá para fazer SELECT a tabelas internas.

SELECT SINGLE vs SELECT UP TO 1 ROWS

images/thumbnail.jpg - Thumbnail

É pá, esta é uma daquelas discussões infinitas que nunca chegarão a lado nenhum. Igual a tentar decidir se mereces continuar a viver se meteres ananás na pizza ou queijo Filadélfia no sushi.

Chama a SM30 ou a SM34 a partir de uma função

images/thumbnail.jpg - Thumbnail

Se quiseres chamar a SM30 a partir de um programa podes fazer um CALL TRANSACTION mas há uma forma mais simples.

Usa um diccionário em vez de IF ou CASE

images/thumbnail.png - Thumbnail

Quanto menos IFs e CASEs melhor, certo? Cada ramo de um IF ou de um CASE é uma excepção. E nós gostamos mais de regras do que de excepções. Aqui está mais uma técnica para o conseguir.

Prefixos fixos

images/thumbnail.jpg - Thumbnail

É muito fácil fazer asneira com os nomes dos objectos em SAP. Encontrei recentemente uma forma de minimizar esse problema: definir regras para fixar prefixos por pacote para determinados tipos de objecto.

Empacoto tudo o que mexe

images/thumbnail.jpg - Thumbnail

Eu empacoto obsessivamente tudo o que mexe.

O ponto de exclamação!

images/thumbnail.jpg - Thumbnail

Quando se olha para o código fonte ABAP, a declaração dos métodos prefixa sempre os parâmetros de entrada com um ponto de exclamação. Isto sempre me intrigou. Finalmente sei o porquê.

Undo com abapGit

images/thumbnail.png - Thumbnail

Sabias que podes finalmente fazer alterações radicais num desenvolvimento sem medos porque há uma forma simples de desfazer todas essas alterações?

Os 3 pais das excepções

images/thumbnail.jpg - Thumbnail

As excepções OO têm sempre de ter um pai. Têm sempre de herdar de alguém. E o ABAP dá 3 hipóteses, cada uma tratada de forma diferente pelo compilador.

Coleccionador de mensagens

images/thumbnail.jpg - Thumbnail

As mensagens SAP são todas geridas de forma centralizada através da transacção SE91, mas podem aparecer a um programa nos mais diversos formatos.

SELECT de registo único com chave incompleta

images/thumbnail.png - Thumbnail

Durante anos explicaram-me que se deve usar UP TO 1 ROWS quando a chave não é completa. A minha professora primária disse que devemos sempre perguntar porquê: porquê? Ninguém explica.