Field Symbol:
- Tipo de sentencia ABAP que permite trabajar con datos en forma dinámica, en tiempo de ejecución.
- Permiten:
.Procesar partes de campos (substring).
.Fuerza a Field Symbol tomar diferentes atributos técicos que los del campo asignado a él.
- La mayoría de los errores con Field Symbol los detectaremos en tiempo de ejecución (más difícil de detectar).
Por ello, se recomienda usarlos sólo si no es posible lograr resultados con sentencias ABAP convencionales.
- Si se especifica, el FS pueden contener cualquier tipo de dato, pero cuando le asignamos un dato,
el FS hereda atributos técnicos del dato.
- Se declaran así:
FIELD-SYMBOLS <FS> [<type>|STRUCTURE <s> DEFAULT <wa>].
- Los tipo de datos posibles para un FIELD SYMBOL son:
.TYPE ANY
.TYPE C, N, P o X
.TYPE TABLE: sistema chequea si tabla es standard.
.TYPE ANY TABLE: se permite operaciones para tablas STANDARD/SORTED/HASHED (OJO: no se permite usar índices).
.TYPE INDEX: permite tablas STANDARD y SORTED. Sí se permite usar índices. (OJO: no se permite HASHED TABLE!)
.TYPE STANDARD TABLE: búsqueda lineal: en función al nro de registros de la tabla.
.TYPE SORTED TABLE: siempre se guarda con el orden correcto: acceso por busqueda binaria (búsqueda muy rápida).
.TYPE HASHED TABLE: clave única, tiempo de acceso es constante, usando operaciones genéricas de clave, SORT o LOOP.
- Para asignación datos a un FS usamos sentencia ASSIGN:
ASSIGN <f> TO <FS>.
La asignación a un FS es estática, ya que sabemos el nombre del campo a asignar al FS.