✒️ABAP Los Field Symbols
ABAP Los Field Symbols
Lección: Field Symbols
1. ¿Qué son los Field Symbols?
Un Field Symbol, es un tipo de sentencia ABAP que nos permite trabajar con los datos de los programas en forma dinámica en tiempo de ejecución.
Al contrario de lo que sucede con el acceso estático de los datos, donde necesitamos especificar el nombre de un objeto para poder hacer algo con el, los Field Symbol nos permiten acceder y pasar datos cuyos nombres y atributos no conocemos hasta el momento de la ejecución.
Se puede considerar a los Field Symbol como nombres simbólicos de los datos, ya que cuando se utilizan, el sistema trabaja con el contenido de los datos asignados y no con el contenido del Field Symbol.
Los Field Symbol nos proveen de gran flexibilidad debido a que:
- Si queremos procesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinámica.
- Se puede forzar a un Field Symbol para que tome diferentes atributos técnicos que los del campo asignado a él.
La mayoría de los errores que cometamos en la utilización de Field Symbols los detectaremos recién en tiempo de ejecución. Esto hace que sean bastante más difíciles de detectar.
Por lo tanto, sólo debemos utilizar Field Symbols si no podemos llegar al mismo resultado con las sentencias ABAP convencionales.
2. Declaración de un Field Symbol
Para declarar un Field Symbol vamos a utilizar la siguiente sintaxis:
FIELD-SYMBOLS <FS>[<type>|STRUCTURE <s> DEFAULT <wa>].
Si no especificamos un tipo a un Field Symbol, este puede contener cualquier dato.
Cuando asignamos un dato al Field Symbol, este hereda los atributos técnicos del dato.
Tipo de especificación Objeto de datos
TYPE ANY o sin especificación Todos los tipos de objetos de datos son aceptados. El field symbol adopta los atributos del dato.
TYPE C, N, P o X Solo los tipos de datos C, N, P y X son aceptados. El field symbol adopta la longitud y decimales del dato.
TYPE TABLE El sistema checa si la tabla es estándar.
TYPE ANY TABLE El sistema checa si el campo es una tabla interna. El field symbol hereda todos los atributos de la tabla.
TYPE INDEX TABLE El sistema checa si el campo es una tabla indexada. El field symbol hereda todos los atributos de la tabla.
TYPE STANDARD TABLE El sistema checa si el campo es una tabla estándar. El field symbol hereda todos los atributos de la tabla.
TYPE SORTED TABLE El sistema checa si el campo es una tabla sorted. El field symbol hereda todos los atributos de la tabla.
TYPE HASHED El sistema checa si el campo es una tabla sorted. El field symbol hereda todos los atributos de la tabla.
Existen diferentes tipos de tablas internas, por ejemplo ANY TABLE, es posible usarla para definir el tipo de un parámetro de tablas genérico, las operaciones permitidas para esta tabla, son todas las operaciones permitidas para estándar, sorted y hashed, hay que tener encuenta que no podemos utilizar indices para acceder a las tablas definidas con este tipo. Otro tipo de tabla es la INDEX TABLE, las tablas INDEX y SORTED, pertenecen a este tipo, una tabla indexada es a la que podemos acceder por medio de un índice, es posible usar el tipo INDEX TABLA para especificar el tipo de un parámetro genérico en un forum o una función, el tipo HASHED no pertenece al tipo global INDEX, por lo que no puede ser pasado un parámetro definido INDEX TABLE. Otro tipo son las ESTANDAR TABLE, el acceso a una ESTANDAR TABLE es mediante una búsqueda lineal, esto significa que el tiempo requerido para la búsqueda está relacionado linealmente con el número de registros de la tabla. Las SORTED TABLE, siempre se guardan con el orden correcto, el acceso es mediante una búsqueda binaria o BINARY SEARCH, si la clave no es única el sistema obtiene la entrada con el índica más bajo, el tiempo requerido para el acceso está logarítmicamente relacionado al número de registros de la tabla. Tambien es posible tener el acceso mediante operaciones de índices. Por último las HASHED TABLE, es como un grupo a cuyos elementos se puede acceder usando su clave única, a diferencia de los TIPOS ESTANDAR Y SORTED no podemos acceder mediante un índice, todos los registros deben tener una clave única y el tiempo de acceso es constante sin tener en cuenta el número de registros de la tabla. Sólo esposible acceder usando las operaciones genéricas de clave o utilizando otras operaciones genéricas como SORT o LOOP.
3. Asignación de datos a un Field Symbol
Para asignar datos a un Field Symbol utilizamos la sentencia ASSIGN.
La asignación que utilizamos es estática ya que sabemos el nombre del campo que queremos asignar al Field Symbol.
La sintaxis utilizada sería la siguiente:
ASSIGN <f> TO <FS>.
 
 
 
Sobre el autor
Publicación académica de Pedro Alejandro Arroyo Gutierrez, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Alejandro Arroyo Gutierrez
Profesión: Gerente de Sistemas - Mexico - Legajo: MC48F
✒️Autor de: 65 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Pedro Arroyo