Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Modelo automático só com CTRL-SPACE

images/thumbnail.jpg - Thumbnail
Claro que já conheces o botão “Modelo” no editor de ABAP que permite introduzir automaticamente modelos para módulos de função, chamadas a métodos e outros. Mas o novo editor agora cresceu um bocadinho (já só está 10 anos atrasado em relação ao Eclipse em vez de 20) e já permite completar automaticamente alguns comandos através do atalho CTRL-SPACE.

Desbloquear objectos numa ordem de transporte

images/thumbnail.jpg - Thumbnail
Quando alteras um objecto e o guardas numa ordem de transporte ele normalmente fica bloqueado. Dentro da ordem de transporte é podes bloquear objectos que não estejam já bloqueados que não estão já bloqueados noutra ordem. Mas, uma vez bloqueados, como é que se desbloqueiam?

Mete-o entre parêntesis

images/thumbnail.jpg - Thumbnail
Truquezito catita: quando na SE38 quiseres meter uma palavra ou expressão entre parêntesis ou aspas, basta seleccioná-la e carregar em ( ou [ ou ‘. E imediatamente isto fica (isto) ou [isto] ou ‘isto’. Obrigado Sérgio Fraga pela dica.

Contemplar o pacote

images/thumbnail.jpg - Thumbnail
Estás a contemplar uma classe na SE24, uma tabela na SE11 ou um programa na SE80. Agora queres ver o pacote desse objecto bem como o seu conteúdo. Até há pouco tempo eu faria assim: primeiro via nas características do objecto qual é o seu pacote, depois abria uma sessão nova, ia à SE80 e escrevia lá o pacote. Agora aprendi uma forma muito mais simples.

Descobre quem transportou uma ordem

images/thumbnail.jpg - Thumbnail
No outro dia apareceram uma série de coisas espatifadas na nossa máquina de testes. De repente ninguém podia trabalhar na máquina. Na STMS encontrámos uma série de ordens de transporte indevidamente transportadas para lá. O utilizador que aparece associado a cada uma dessas ordens é o dono dela. Mas será que a culpa é dele? Não terá sido outra pessoa a fazer o transporte? Como saber?

Vista técnica da SE16N

images/thumbnail.jpg - Thumbnail
Olá. Tudo bem? A vida? Flui? Esta dica é tão simples que mais vale conversarmos um bocado antes de eu a dizer senão nem dá para aquecer. Está sol. Choveu de manhã mas agora escampou. Siga. Sempre que vejo alguém a usar a SE16 pergunto-me porque é que o continua a fazer quando a SE16N é tão melhor e já existe há tanto tempo. Mas a dica não é isto.

Apagar pacotes que não querem ser apagados

images/thumbnail.jpg - Thumbnail
Quando tentas apagar um pacote no qual já criaste objectos que entretanto apagaste e o pacote aparente estar vazio quando visto na SE80, quando o tentas apagar não dá porque diz que o pacote ainda contém objectos. Por alguma razão parva, a SE80 não mostra todo o tipo de objectos associados aos pacotes. Além disso, muitas vezes ao apagar um objecto a entrada desse objecto não é correctamente apagada. O SAP está cheio de falhas. Mas é o que temos, é ele que nos dá o pão, não vamos dizer muito mal dele. O Abapinho dá-te a solução.

0 é Private, 1 é Protected, 2 é Public

images/thumbnail.jpg - Thumbnail
Pequeno truque para acelerar a introdução de (alguns) dados.

Lê os textos de um programa

images/thumbnail.jpg - Thumbnail
Aqui está uma forma simples de programaticamente ter acesso aos textos de um programa qualquer. DATA: t_textos TYPE TABLE OF textpool. READ TEXTPOOL sy-repid INTO t_textos LANGUAGE sy-langu STATE 'A’. Agora tens os textos todos disponíveis na tabela interna T_TEXTOS. Como se isto não bastasse, podes também alterar os textos programaticamente. Com os seguintes comandos: INSERT TEXTPOOL sy-repid FROM t_textos LANGUAGE sy-langu. DELETE TEXTPOOL PROGRAM LANGUAGE 'E’. A SAP diz que estes dois últimos comandos são só para uso interno.

SELECT dentro de SELECT

images/thumbnail.jpg - Thumbnail
Provavelmente por razões históricas, os programadores ABAP não exploram as possibilidades do SQL. Muitos há que em vez de usarem INNER JOINs, ainda julgam que é mais rápido fazer vários SELECTs para tabelas internas e depois trabalhar os dados em ABAP. Mas a verdade é que, mesmo que se haja excepções, a regra é: quanto menos acessos à base de dados, melhor a performance. E faz sentido porque, afinal, porque foram escritas explicitamente para isso, as bases de dados relacionais são muito mais peritas em processar dados relacionais do que um programa ABAP. Mas claro que há coisas que, pela sua complexidade, não podem ser feitas com um simples INNER JOIN. Ainda assim, algumas dessas coisas podem ser feitas num único SELECT.

Obter informação sobre um sistema remoto por RFC

images/thumbnail.jpg - Thumbnail
Aqui está uma funçãozinha fixe para obter alguns detalhes de um sistema remoto acessível por RFC: RFC_SYSTEM_INFO Não posso dar aqui nenhum exemplo porque estaria a revelar informação segreda importantíssima sobre o meu cliente que depois seria certamente utilizada pelos maus para fazerem espionagem industrial. Mas é fácil de testar na SE37. Obrigado kingofthebigmacs pela foto. O Abapinho saúda-vos.

Classe com montes de métodos para lidar com datas

images/thumbnail.jpg - Thumbnail
Há inúmeras funções standard para fazer cálculos com datas. São muitas, são demais, são redundantes e, em muitos casos, são obscuras ou impossíveis de compreender. Andava há que tempos para fazer um artigo aqui com uma lista das mais úteis. Mas agora já não é preciso.

Faz debug a um job

images/thumbnail.jpg - Thumbnail
Toma lá uma forma simples de começares a fazer debug a um job: Vai à transacção SM37; Clica no job a que queres fazer debug; escreve JDBG na linha de comando (sem /) e carrega em ENTER; e… zás! estás a fazer debug ao job. Obrigado Ricardo Monteiro pela dica. E obrigado Ingolf pela foto. O Abapinho saúda-vos.

Atalho para viajar no tempo

images/thumbnail.jpg - Thumbnail
Há uns meses atrás mostrei como transformar o debugger numa máquina do tempo. Hoje a dica é singela mas escorreita: há um atalho de teclado para tornar ainda mais simples este viajar enviesado: shift + F12 Pões o cursor na linha para onde queres viajar e depois… shift+F12. Obrigado Maxsuel Maia pela dica. O Abapinho saúda-vos.

Usa um gestor de passwords na tua vida

images/thumbnail.jpg - Thumbnail
E pronto, se leste o título, a dica está dada. Agora umas dicas sobre a dica: