Patrocinado por
Patrocinado por Inetum

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?

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 }, | &
      |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:

O GUI está disponível?

images/thumbnail.jpg - Thumbnail

Para verificar se um programa está em background é costume espreitar a variável de sistema SY-BATCH. A SY-BINPT também pode ser usada para verificar se o que está a correr em background é uma sessão de BDC. Normalmente usa-se uma destas duas.

Mas há uma pergunta parecida e no entanto diferente. Como fazes para saber se o GUI está disponível? É certo que na maior parte dos casos o resultado é semelhante, mas não o será em todos.

É como dizer que de dia há o sol e de noite há a lua. Se o ceu estiver nublado não há nem sol de dia nem lua de noite.

Como evitar <i>timeout</i> ao correr um programa

images/thumbnail.jpg - Thumbnail

Normalmente os sistemas SAP têm definido um tempo limite para que um programa possa correr interactivamente. Se o programa demorar mais ocorre um erro de execução (vulgo dump ).

Eu te baptizo em nome do ABAP

images/thumbnail.jpg - Thumbnail

Quando aprendemos ABAP ensinam-nos uma série de regras sobre como dar nomes a variáveis. Ainda que nem todos acabem por dar nomes iguais, ainda assim partilham-se algumas ideias rígidas:

  • As variáveis locais começam por L: L_BUKRS;

  • As variáveis globais começam por G: G_MODE;

  • As tabelas internas têm de ter lá um T_: LT_MARA;

  • As estruturas têm de ter lá um S_: LS_MARA;

  • As referências para objectos começam por R_: R_CUSTOMER;

  • Os parâmetros input devem começar por I, os output por O, os changing por C e os returning por R.

  • E a mais estúpida de todas, os field-symbols devem começar por FS_: <FS_MARA>.

No início do século XXI isto até fazia sentido (excepto a dos field-symbols que já na altura era tão estúpida como escrever a palavra “lápis” em todos os lápis que tivermos). Hoje quase já não. Passo a explicar.