Nunca te lembras do código ASCII do CR_LF e seus amigos?
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.
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.
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?
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.
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.
À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:
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:
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.
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 ).
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.
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
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.
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.
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.
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.
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.