Tag > segredo
Patrocinado por
Patrocinado por Inetum

Copia do SAPGUI para o clipboard

images/thumbnail.png - Thumbnail

Sabias que o teu programa ABAP pode copiar conteúdo para o clipboard do teu sistema operativo?

Prefixos fixos

images/thumbnail.jpg - Thumbnail

É muito fácil fazer asneira com os nomes dos objectos em SAP. Encontrei recentemente uma forma de minimizar esse problema: definir regras para fixar prefixos por pacote para determinados tipos de objecto.

O ponto de exclamação!

images/thumbnail.jpg - Thumbnail

Quando se olha para o código fonte ABAP, a declaração dos métodos prefixa sempre os parâmetros de entrada com um ponto de exclamação. Isto sempre me intrigou. Finalmente sei o porquê.

As duplas negativas dos RANGEs

images/thumbnail.jpg - Thumbnail

Os RANGEs têm propriedades interessantes.

Popula manulamente uma LISTBOX

images/thumbnail.jpg - Thumbnail

Em 2012 lamentei que a LISTBOX fosse tão pouco usada. Ensinei a usá-la com elementos de dado standard, que a populam automaticamente. Hoje vou-te ensinar como a podes popular tu próprio se quiseres listar opções que não venham de um elemento de dados.

Manipula textos de selecção sem os fixar no programa

images/thumbnail.jpg - Thumbnail

Embora muitos ABAPers ainda se esqueçam disto, quanto menos textos forem fixados no programa mais fácil será traduzi-lo.

Aqui está uma forma simples mas relativamente obscura de alterar os textos para, por exemplo, adicionar-lhes ícones, mantendo-os traduzíveis.

Usa CL_GUI_ALV_GRID sem ter de criar um ecrã

images/thumbnail.jpg - Thumbnail

Hoje em dia é raro usar o CL_GUI_ALV_GRID porque uso quase sempre a SALV. Mas quando é preciso fazer ALVs editáveis continuo a recorrer à CL_GUI_ALV_GRID. Durante muito tempo julguei que, para a usar, tinha de criar um ecrã com um container, o que é uma chatice. E como eu uso ABAP OO, precisava de criar um function group para alojar o ecrã e um function module para o chamar, o que era outra chatice.

Atalhos mágicos para menus

images/thumbnail.jpg - Thumbnail

Se tu que estás a ler isto achares que tudo o que está escrito no Abapinho é literalmente verdade, o que te vou dizer a seguir vai desiludir: quando disse mágico não quis dizer que era sobrenatural. É só uma forma mais abrilhantada de dizer que é surpreendente e inesperado. Tomei esta liberdade um bocado como quando dizes estou morto de sede e no entanto ainda estás vivo. Tendo clarificado isto, podemos continuar.

Atalho para gravar lista em ficheiro local

images/thumbnail.jpg - Thumbnail

O SAP está replecto de recantos refundidos e rebuscados raramente reconhecidos que o Abapinho se regozija por revelar.

O comando %pc é equivalente à opção de menu Sistema/Lista/Gravar/File local:

Enhancements implícitos em estruturas de dados

images/thumbnail.jpg - Thumbnail

Já todos usámos enhancements implícitos para adicionar código ao início ou final de funções, forms ou métodos standard. Mas é menos conhecido o facto de que também podemos adicionar campos a estruturas de dados, estejam elas declaradas como TYPES ou ou directamente como DATA.

Guarda dados XML numa ST (Simple Transformation)

images/thumbnail.jpg - Thumbnail

No outro dia estava a aprender sobre ST (Simple Transformations) e lembrei-me que, ainda que tenha sido desenvolvida para transformar dados, é uma forma práctica de guardar dados XML.

Temos o seguinte XML:

  <cocktails>
    <cocktail id=&quot;gt&quot; nome=&quot;Gin Tonic&quot;/>
    <cocktail id=&quot;ws&quot; nome=&quot;Whiskey Sour&quot;/>
    <cocktail id=&quot;cl&quot; nome=&quot;Campari Laranja&quot;/>
  </cocktails>

Injectar comandos ABAP num sistema produtivo

images/thumbnail.jpg - Thumbnail

O vídeo abaixo demonstra como é simples criar condições para facilmente injectar comandos ABAP em programas em produtivo. Ponderei sobre partilhar este vídeo pois o seu conteúdo pode ser usado para fins menos nobres. Mas, como já aconteceu no passado, acredito que é preferivel que isto seja divulgado pois é fundamental que os administradores de sistema estejam conscientes desta possibilidade e protejam os seus sistemas dela. Pois é algo verdadeiramente perigoso.

Transporta uma tabela local com os ecrãs de manutenção

images/thumbnail.jpg - Thumbnail

Criaste uma tabela e os seus ecrãs de manutenção como objectos locais.

Quando mais tarde te arrependeres e decidires transportar a tabela, como fazes para os transportar também os ecrãs de manutenção?

Transportar só o grupo de funções não chega, vai dar erro.

Testa uma sequência de funções na SE37

images/thumbnail.jpg - Thumbnail

Podia jurar que já tinha feito um post sobre isto mas não consigo encontrá-lo por isso aqui vai.

Há funções que guardam dados globais que serão depois usados por outra função do mesmo grupo. Ora se quiseres testar as duas juntas é fundamental que corram sequencialmente dentro da mesma transacção.

Toda a gente sabe que a transacção SE37 permite testar uma função. O que pouca gente sabe é que a transacção SE37 permite testar uma sequência de funções dentro da mesma transacção. Quem não sabe isto normalmente acaba por criar um pequeno programa de testes para chamar as várias funções em sequência. Fica agora a saber como o pode evitar.

Controla mais o teu ecrã de selecção

images/thumbnail.jpg - Thumbnail

Os PARAMETERS e os SELECT-OPTIONS até têm algumas opções de configuração. Mas muitas vezes dava jeito conseguir configurá-los ainda mais. E curiosamente, ainda que não seja assim tão simples, é possível fazê-lo, através de uma função standard.