✒️ABAP Los Field Symbols
ABAP Los Field Symbols
Field Symbols
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 él, los FIELD SYMBOLS nos permiten acceder y pasar datos cuyos nombres y atributos nos conocemos hasta el momento de la ejecución.
Se puede considerar a los Field Symbols 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.
Estos, nos proveen de gran flexibilidad debido a que:
- Si quisiéramos 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 ejecución los detectaremos recién en tiempo de ejecución. Esto hace que sean más difíciles de detectar.
Por lo tanto, solo debemos utilizarlos si no podemos llegar al mismo resultado con las sentencias ABAP convencionales.
Declaración
Debemos 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, este hereda los atributos técnicos del dato.
Los tipos de datos genéricos posibles para un Field Symbol son:
- 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 - Son los únicos que acepta y adopta la longitud y decimales del dato.
- TYPE TABLE - El sistema chequea si la tabla es estándar.
- TYPE ANY TABLE - El sistema chequea si el campo es una tabla interna. Hereda todos los atributos de la tabla.
- TYPE INDEX TABLE - El sistema chequea si es una tabla indexada. Hereda todos los atributos de la tabla.
- TYPE STANDARD TABLE - El sistema chequea si es una tabla estandard. Hereda todos los atributos de la tabla.
- TYPE SORTED TABLE - El sistema chequea si es una tabla sorted. Hereda todos los atributos de la tabla.
- TYPE HASHED TABLE - El sistema chequea si es una tabla hashed. Hereda todos los atributos de la tabla.
Existen distintos tipos de Tablas Internas, por ejemplo:
ANY TABLE, es utilizada para definir el tipo de un parámetro de tabla genérico, las operaciones permitidas para este tipo son todas las operaciones permitidas para STANDARD, SORTED y HASHED TABLE. Hay que tener en cuenta que no es posible usar índices para poder acceder a las tablas definidas con este tipo.
INDEX TABLE los tipos STANDARD Y SORTED pertenecen al tipo de tabla genérico INDEX TABLE, una tabla indexada es aquella a la que podemos acceder mediante un índice, es posible usar el tipo índex tabla para especificar el tipo de un parámetro genérico en un FORM y en una FUNCTION. El tipo HASHED no pertenece al tipo global INDEX por lo que no puede ser pasado un parámetro definido INDEX TABLE.
STANDARD TABLE el acceso es mediante una búsqueda lineal es decir que el tiempo requerido para la búsqueda está relacionado linealmente al número de registro de la tabla.
SORTED TABLE siempre se guarda 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 índice más bajo el tiempo requerido para el acceso esta logarítmicamente relacionada al número de registro de la tabla, también es posible ingresar a la SORTED TABLE mediante operaciones de índice.
HASHED TABLE es un grupo cuyos elementos se puede acceder mediante su clave única, a diferencia de las tablas STANDARD y SORTED no es posible acceder a estas tablas mediante í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, solo es posible ingresar a este tipo de tablas usando las operaciones genéricas de claves o usando otras operaciones genéricas como SORT o LOOP.
Asignación de datos a un Field Symbol
Utilizaremos la sentencia ASSIGN; la asignación que utilizaremos es estática ya que sabemos el nombre del campo que queremos asignar al Field Symbol
La sintaxis utilizada seria la siguiente: ASSIGN <f>TO <FS>.
 
 
 
Sobre el autor
Publicación académica de Jeferson José Peña Curvelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Jeferson José Peña Curvelo
Venezuela - Legajo: PD49W
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jeferson Peña