Patrocinado por
Patrocinado por Inetum

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

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_: &lt;FS_MARA&gt;. 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 &ldquo;lápis&rdquo; em todos os lápis que tivermos). Hoje quase já não. Passo a explicar.

Abapinho Dev Tools: Translator

images/thumbnail.jpg - Thumbnail
O Nuno Morais desenvolveu uma ferramenta muito útil que auxilia na tradução em massa da maioria dos objectos SAP. A ferramenta não faz tradução automática entre línguas. Antes, permite: Exportar um ficheiro Excel com textos Importar um ficheiro Excel com textos Copiar textos de uma língua para uma ou mais línguas de destino Criar uma ordem de transporte com as alterações Encontrar dependências de objectos a que faltem traduções

Abapinho Dev Tools: Dependencies

images/thumbnail.jpg - Thumbnail
O Nuno Morais desenvolveu uma ferramenta muito útil que permite comparar objectos entre sistemas e que funciona muito melhor do que a transacção SREPO. O Abapinho passa a ser o seu repositório oficial. Código no GitHub. Em breve, instruções. Até lá vai experimentando, é intuitivo. E se gostares ou tiveres sugestões deixa aqui um comentário. Obrigado Nuno por teres desenvolvido isto e por o partilhares com o mundo no Abapinho.

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. Tens uma tabela com um milhão e duzentas mil linhas e queres que o campo ICON tenha sempre o valor &lsquo;@FM@&rsquo;. Em vez de fazeres isto: LOOP AT lt_data ASSIGNING &lt;data&gt;.

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?