Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

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

O READ TABLE vai desaparecer!

images/thumbnail.jpg - Thumbnail

Pré 7.4: DATA l_idade type i. READ TABLE lt_gente INTO ls_gente WITH KEY nome = l_nome. l_idade = ls_gente-idade. Pós 7.4: data(l_idade) = lt_gente[ nome = l_nome ]-idade. Obrigado Sérgio Fraga pela dica. O Abapinho saúda-vos.

Tanta coisa nova no 7.4 que não sei por onde começar

images/thumbnail.jpg - Thumbnail

O Abapinho vai lentamente começar a dar dicas específicas para o AS ABAP 7.4. Lentamente porque ainda são poucas as pessoas com acesso a esse sistema. Mas são tantas as novidades que dá vontade de começar a fazê-lo rapidamente. O ABAP era um gajo de meia idade com barriga e todo flácido. Fizeram-lhe uma operação plástica e agora parece ter 20 anos e montes de músculos, capaz de ir sair à noite até às 9 da manhã, beber 7 gins tónicos e a seguir, antes de se ir deitar, fazer 100 burpees só para adormecer melhor.

Breakpoint em mensagem a partir do depurador

images/thumbnail.jpg - Thumbnail

Já estás a meio de um debug e queres que a execução pare numa determinada mensagem.

O que fazer?