Escrever em muitas linhas ao mesmo tempo
O editor de ABAP tem coisas que não lembram ao diabo. Até dá para escrever ao mesmo tempo em várias linhas.
O editor de ABAP tem coisas que não lembram ao diabo. Até dá para escrever ao mesmo tempo em várias linhas.
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.
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.
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.
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.
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 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.
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 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.)