Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

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.

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:

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 ).

Atalhos para fazer letras grandes e pequenas

images/thumbnail.jpg - Thumbnail

Podes nem sequer saber programar mas se souberes datilografar rápido e conheceres muitos atalhos de teclado vais parecer super profissional. No editor escreve a seguinte palavra: chichisbéu Agora experimenta nos seguintes atalhos: CTRL+U: CHICHISBÉU LETRAS GRANDES! MAIÚSCULAS! CTRL+L: chichisbéu letras minúsculas! minúsculas! CTRL+J: Chichisbéu A Primeira Letra De CaDa PaLaVrA É mAiÚsCuLa! CTRL+K: cHICHISBÉU O gRaNdE fIcOu PeQuEnO e ViCe-VeRsA! Obrigado José Vília pela dica. Obrigado Chris pela foto. O Abapinho saúda-vos.

SE16H - Agrega dados sem precisares do Excel

images/thumbnail.jpg - Thumbnail

No início dos tempos usava-se a transacção SE17 para ver o conteúdo de tabelas. Rapidamente sentiram vergonha e decidiram fazer uma coisa melhorzinha a que chamaram SE16. Depois inventaram a ALV e surgiu a SE16N (e muita gente continuou até hoje a usar a SE16, algo que me ultrapassa). Hoje apresento-vos a SE16H.

CONCATENATE LINES OF itbl

images/thumbnail.jpg - Thumbnail

Se queres serializar um conjunto de strings que tens guardadas numa tabela interna tens duas formas de o fazer. Uma ranhosa e outra cheia de estilo.

Modificar uma campo em todas as linhas de tabela interna

images/thumbnail.jpg - Thumbnail

O que vos vou mostrar não é propriamente uma novidade. Até já foi usado antes no Abapinho. Mas como se continua a ver por aí muita gente a fazer LOOPs a tabelas internas para alterar um campo, achei que valia a pena recordar.