SAP – Field Symbols – Abap

Publicado: 10 de setembro de 2014 em Abap

Os Field Symbols são espaços reservados na memoria ou nomes simbólicos para outros campos. Eles não reservam um espaço físico para  os símbolos declarados, mas apontam para o seu conteúdo. Um Field Symbol pode apontar para qualquer objeto de dados.

Sempre que você endereçar um Field Symbol em um programa, você está endereçando o campo que é atribuído ao Field Symbol, deste modo não há mais diferença se você faz referência ao símbolo ou ao próprio campo. Campos de símbolo são similares aos ponteiros de referencia em C, que utilizam o caractere * (asterisco).

Abap - Field Symbol

Abap – Field Symbol

Exemplo:

Neste exemplo criamos uma linha de dados contendo duas colunas, a primeira coluna possui o conteúdo “dados”, após criarmos o campo de símbolo, o endereçamos a linha de dados,  o utilizamos como um ponteiro para igualar o valor contido na primeira coluna para a coluna vazia e exibimos novamente a linha de dados, assim podemos ver que ao manipular o ponteiro do campo de símbolo também estamos manipulando a linha de dados.

Abap

*&---------------------------------------------------------------------*
*& Report  ZFIELDSYMBOL
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Field Symbols
*&---------------------------------------------------------------------*

REPORT  ZFIELDSYMBOL.

* Declara objeto de dados
DATA: BEGIN OF linha,
        inicio(5) TYPE c VALUE 'DADOS',
        fim(5) TYPE c ,
      END OF linha.

* imprime valor da linha
WRITE : / 'Conteudo da linha:'.
WRITE : / 'Inicio: ', linha-INICIO, ' Fim: ', linha-FIM.

* Cria simbolo
FIELD-SYMBOLS <f> LIKE linha.

* Cria ponteiros de referencia
ASSIGN linha TO <f>.

* Move referencia
* Veja que ao mover os pointeiros
* Movemos o conteudo da variavel
* Isto porque um Field Symbol funciona como um Placeholder
MOVE <f>-INICIO TO <f>-FIM.

* re-imprime valor da linha
skip 1.
WRITE: / 'Field Simbolo (Pointer) reorganizado:'.
WRITE : / 'Inicio: ', linha-INICIO, ' Fim: ', linha-FIM.

 

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s