Escrever em muitas linhas ao mesmo tempo

images/thumbnail.jpg - Thumbnail

O editor de ABAP tem coisas que não lembram ao diabo. Até dá para escrever ao mesmo tempo em várias linhas.

Matemática problemática

images/thumbnail.jpg - Thumbnail

Sabes a diferença entre um mistério e um enigma? Num enigma sabe-se que há uma solução mas esta não é conhecida; já num mistério, não se sabe se haverá solução.

Concordas com isto? 5 * 3 / 10 = ( 5 * 3 ) / 10 = 5 * ( 3 / 10 ) = 1.5

Se não concordas, devias concordar porque é um facto matemático.

Mas vamos lá fazer umas experiências.

SELECT comparando 2 campos da própria tabela

images/thumbnail.jpg - Thumbnail

Esta dica é simples e rápida mas aposto 200$482 em como poucos a sabem.

Roubar o conteúdo de uma SALV

images/thumbnail.jpg - Thumbnail

Um amigo de um amigo de um amigo disse que um amigo dele conhecia um amigo que, num bar de alterne ali nas docas, lhe explicou como roubar os dados a uma SALV.

Comando /HS

images/thumbnail.jpg - Thumbnail

Todo os funcional, até o mais funcional dos funcionais, sabe que para começar a depurar (vá, a fazer debug a) um programa ABAP se usa o comando /H. Mas raro será o programador, mesmo o mais programador dos programadores, que saberá para que serve o comando /HS.

Salta a parede

images/thumbnail.jpg - Thumbnail

Baixa a música. Fecha a porta. Olha à volta. Está alguém a olhar para ti? Não estás a ser observado? Nem câmaras de vigilância? Então, podemos continuar.

Parâmetros complexos em funções remotas

images/thumbnail.jpg - Thumbnail

As chamadas a funções remotas (por RFC) não suportam parâmetros com estruturas complexas ( deep structures ). Por outras palavras, se algum dos parâmetros tiver uma estrutura em que um dos seus campos seja outra estrutura ou uma tabela interna, azar, não dá.

Desistes? Não desistas. O Abapinho dá-te a solução: serialização.

Ó Tempo Volta Para Trás

images/thumbnail.jpg - Thumbnail

“Ó tempo volta para trás Dá-me tudo o que eu perdi Tem pena e dá-me a vida A vida que eu já vivi Ò tempo volta p’ra trás Mata as minhas esperanças vãs Vê que até o próprio sol Volta todas as manhãs” - António Mourão

Ó Tony, é para já. Vou mostrar-te como podes voltar atrás no tempo.

Como sabotar tabelas

images/thumbnail.jpg - Thumbnail

Mais um artigo em auxílio dos que buscam a subversão subreptícia. Espiões, reparem como editar uma tabela que não pode (e provavelmente não deve) ser editada. Apresento-vos 3 técnicas. A primeira já caducou há anos, a segunda está em vias de caducar e a terceira vamos ver quando caducará.

Quando a tabela interna não é estruturada

images/thumbnail.jpg - Thumbnail

Quando queres seleccionar linhas numa tabela interna normalmente fazes algo assim:

DATA: BEGIN OF itbl,
            campo1 TYPE c,
            campo2 TYPE c,
          END OF itbl.

READ TABLE itbl WITH KEY campo1 = 'X' campo2 = 'Y'.

LOOP AT itbl WHERE campo1 = 'X' and campo2 = 'Y'.
  COISO.
ENDLOOP.

Mas, e se a tabela não for estruturada e quiseres pesquisar na linha como um todo? Bem, nesse caso, fica aqui a dica: usas a palavra especial TABLE_LINE :

DATA: itbl TYPE STANDARD TABLE OF string,
            wa LIKE LINE OF itbl.

READ TABLE itbl WITH KEY table_line = 'X'.

LOOP AT itbl INTO wa WHERE table_line = 'X'.
  COISO.
ENDLOOP.

(Obrigado a Aaron Escobar pela foto.)