Descobre as diferenças com a SE39

images/thumbnail.jpg - Thumbnail

Estava há pouco a fazer QC a um programa que criaram chamado ZSDFAKSPE com quase 1000 linhas e nenhum comentário. Uma óbvia cópia de um programa standard chamado SDFAKSPE.

Decidi então usar o Editor ABAP de tela dividida (Split screen editor) que está na transacção SE39. Introduzi o nome do Z e do standard e depois pude compará-los lado a lado.

Programar classes baseado em texto fonte

images/thumbnail.jpg - Thumbnail

Estando habituado a programar em Java e C++, a forma como a SE24 obriga a navegar entre as várias partes de uma classe e o facto de cada método estar isolado no seu próprio include ao início fez-me muita confusão. Mas porque é que a SAP complica sempre tudo? Acabei por habituar-me.

A dado momento a SE24 passou a permitir a opção Basedo em texto fonte que mostra a classe e os métodos todos ligados em texto corrido. Mas por alguma razão que nunca atinei com aquilo.

Saltar para a tua última alteração

images/thumbnail.jpg - Thumbnail

Imagina que estás a mexer num programa daqueles antigos que têm milhares de linhas (sim porque hoje em dia sabes que não modularizar é errado (pecado mesmo) e os teus métodos (sim porque hoje tu já só usas métodos) nunca passam das 200 linhas).

Eu chamo-te e tu chamas-me

images/thumbnail.jpg - Thumbnail

Quando chamas uma função por RFC tens de lhe dar a RFC DESTINATION do sistema remoto:

CALL FUNCTION ‘ZESPIRREI’
  DESTINATION ’sistema_longe_daqui’.

E se, por alguma razão, precisares que a função que corre no sistema remoto chame uma função no sistema original. Sabes fazê-lo?

Desfazer alterações no ecrã do depurador

images/thumbnail.jpg - Thumbnail

Embora uma parte substancial do trabalho de um ABAPador seja depurar código, a maior parte dos ABAPadores que eu conheço investem muito pouco em explorar a ferramenta que o permite, o depurador. Talvez por terem passado anos a aturar um depurador arcaico e limitado. Mas o novo pode fazer muito mais do que lhe costuma ser pedido. E o Abapinho vai tentar ensinar como.

Hoje ensina-te apenas uma pequena tecla.

Dar passos de bebé no debug

images/thumbnail.jpg - Thumbnail

Quando fazes debug usas a tecla F5 para avançar para a próxima instrução (ou entrar para dentro de uma sub-rotina). Mas imagina um IF com várias condições:

IF A = 1 AND B = 2 AND C = 3.
  WRITE 'Gosto da palavra glauco'.
ENDIF.

Ao fazeres debug àquele IF com F5 e alguma das expressões for falsa saltas logo para fora do IF e ficas sem saber qual delas falhou.

Mas o novo debugger tem uma nova funcionalidade muito catita que te pode ajudar a entender melhor o que aconteceu ali.

O SAP ajuda-te a traduzir para qualquer lingua

images/thumbnail.jpg - Thumbnail

Volta não volta encontro mais uma virtude escondida do SAP. Então não é que fiquei a saber que existe uma transacção em que podemos introduzir uma determinada palavra numa determinada lingua e o SAP ajuda-nos a traduzi-la para outra lingua qualquer mostrando-nos noutras traduções que já existam para essa mesma palavra.

Não é fixe? Ok, não é o Google Translate, mas é uma bela ajuda.

Ah, já me esquecia, a transacção chama-se STERM.

SQL nativo

images/thumbnail.jpg - Thumbnail

Por vezes o SQL do ABAP não te permite fazer coisas que conseguirias fazer usando SQL nativo da base de dados. É possível fazê-lo.

Corrigir erro em código standard com enhancement implícito

images/thumbnail.jpg - Thumbnail

Descobriste um bug num FORM (ou Função ou método) standard:

FORM EQUAL_VALUE CHANGING W_DATE TYPE SYDATUM.
  W_DATE = SY-DATUM - 1.
ENDFORM.

Reportaste o erro à SAP mas eles ainda devem demorar a responder e tu precisas da correcção urgentemente.

Tens de agir.

Sem demora usas o enhancement implícito do início do código para substituir o código original pelo teu (até a correcção chegar, claro):

FORM EQUAL_VALUE CHANGING W_DATE TYPE SYDATUM.
ENHANCEMENT...
* Enquanto no código SAP standard estiver isto: W_DATE = SY-DATUM - 1.
  W_DATE = SY-DATUM - 2.
  EXIT. "salta fora
ENDENHANCEMENT
W_DATE = SY-DATUM - 1.
ENDFORM.

Certo, não é elegante. Mas safa.

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.