Inline declarations – Declarações em linha ou OnLine
Tempo de leitura: 4 minutos.
Inline declarations permite que você instancie uma variável que assume como tipo a referência do valor que está sendo atribuído naquele momento. Isso tornará a criação do seu código mais ágil, mais funcional e com menos linhas de código já que não serão mais necessárias declarações estáticas.
Como usar Inline declarations.
Aqui seguem alguns exemplos que pude testar, sempre comparando as duas versões, o antes e o depois.
*”Declaração de variável
DATA vl_mensagem TYPE string.
MOVE ‘Olá mundo!’ TO vl_mensagem.
*”7.40
DATA(vl_mensagem) = ‘Olá mundo!’. “Nesse caso não é possível utilizar o comando MOVE
*”LOOP com work-area
DATA wl_material LIKE LINE OF tl_mara.
LOOP AT tl_mara INTO wl_material.
*” …
ENDLOOP.
*”7.40
LOOP AT tl_mara INTO DATA(wl_material).
*” …
ENDLOOP.
*”LOOP com field-symbol
FIELD-SYMBOLS: <fs_material> LIKE LINE OF tl_mara.
LOOP AT tl_mara ASSIGNING <fs_material>.
*” …
ENDLOOP.
*”7.40
LOOP AT tl_mara ASSIGNING FIELD–SYMBOL(<fs_material>).
*” …
ENDLOOP.
*”READ TABLE com work-area
DATA wl_material LIKE LINE OF tl_mara.
READ TABLE tl_mara INTO wl_material...
*”7.40
READ TABLE tl_mara INTO DATA(wl_material)…
*”READ TABLE com field-symbol
FIELD-SYMBOLS: <fs_material> LIKE LINE OF tl_mara.
READ TABLE tl_mara ASSIGNING <fs_material>…
*”7.40
READ TABLE tl_mara ASSIGNING FIELD–SYMBOL(<fs_material>)…
*”SELECT INTO com tabela e variáveis
DATA tl_mara TYPE TABLE OF mara.
SELECT *
FROM mara
INTO TABLE tl_mara
WHERE matnr = ‘000000000000000001’.
DATA vl_matnr TYPE matnr.
SELECT SINGLE matnr
INTO (vl_matnr)
FROM mara
WHERE matnr = ‘000000000000000001’.
*”7.40
SELECT *
FROM mara
INTO TABLE DATA(tl_mara)
WHERE matnr = ‘000000000000000001’.
SELECT SINGLE matnr
INTO DATA(vl_matnr) “Ou poderia ser uma estrutura se fossem selecionados vários campos
FROM mara
WHERE matnr = ‘000000000000000001’.
Ainda existem outras opções, mas não pude testar até fechar esse post. *NOTA Use essa técnica aliada ao READ TABLE e veja como torna-se mais prática a codificação.
Pontos positivos e negativos.
Sinceramente não vi, até agora, nenhum ponto negativo em usar Inline declarations, muito pelo contrário penso que ela veio para aumentar a performance e organização do ABAP ao criar uma solução. Chega de variáveis e de tabelas internas globais que podem ser acidentalmente limpas por uma nova rotina ou ajuste. rsrs
O mais importante é você saber que essa funcionalidade existe e como ela pode melhorar sua codificação, quando tiver dúvidas de como usar ou da sintaxe, use esse post como um guia de consulta rápida.
Abraços,
LNunes.
Ps. Siga o @openabap no Instagram.