✒️ABAP Los Field Symbols
ABAP Los Field Symbols
- 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 no conocemos hasta el momento de la ejecución
- Se puede considerar a los Field Symbols como nombre 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.
- No reservan espacio físicamente para un campo sino que apuntan a su contenido.
- Un Field Symbol puede apuntar a cualquier objeto de datos.
- 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 que tome diferentes atributos técnicos del campo asignado a el.
- La mayoría de los errores que cometemos 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, solo debemos utilizar Field Symbols si no podemos llegar al mismo resultado con las sentencias abap convencionales.
La declaración de un Field Symbol.
- Para poder utilizar un Field Symbol en un programa ABAD debemos realizar dos simples pasos: Declarar el Field Symbol, Asignar al Field Symbol el objeto de datos.
- Para declarar un Field Symbol se usa 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, es decir asume todos los atributos técnicos del campo. Si se especifica un tipo, el sistema controla la compatibilidad del Field Symbol y el campo al que se está asociando en el momento de la ejecución de la sentencia de asignación.
- Tipos de datos genéricos:
Tipo de especificación | Objeto de datos |
TYPE ANY O sin especificación | Todos los tipos de objetos de datos son aceptados. Adopta los atributos del dato |
TYPE C, I, N, P o X | Sólo los tipos de datos C, I, N, P y X son aceptados. Adopta la longitud y decimales del dato. |
TYPE TABLE | El sistema checa si la tabla estándar |
TYPE ANY TABLE | El sistema checa si el campo es una tabla interna. Hereda todos los atributos de la tabla. |
TYPE INDEX TABLE | El sistema checa si el campo es una tabla indexada. Hereda todos los atributos de la tabla. |
TYPE STANDARD TABLE | El sistema checa si el campo es una tabla estándar. Hereda todos los atributos de la tabla. |
TYPE SORTED TABLE | El sistema checa si el campo es una tabla sorted. Hereda todos los atributos de la tabla. |
TYPE HASHED TABLE | E l sistema checa si el campo es una tabla hashed. Hereda todos los atributos de la tabla. |
La asignación de datos a un Field Symbol.
- En un programa bap se pueden asignar objetos de datos a Field Symbol en cualquier momento, como también asignar una serie de diferentes objetos de datos.
- Para asignar datos a un file simboldt utilizamos la sentencia a ASSIGN
- La asignación que utilizamos es estática ya que sabemos el nombre del campo que deseamos asignar
- La sintaxis es la siguiente:
ASSIGN <F> TO <FS>.
- Siendo F el campo asignado al Field Symbol y fs el nombre del Field Symbol.
- Después de asignar un objeto de datos a un Field Symbol, si realizamos cambios en el valor del Field Symbol entonces también se actualiza el valor del objeto de datos correspondiente.
La utilización de Field Symbols cuando trabajamos con estructuras.
- Podemos tener un registro de una tabla interna utilizando un Field Symbol en lugar de utilizar una estructura o área de trabajo.
- También podemos declarar un Field Symbol para recorrer una tabla interna, en lugar de declarar una estructura o área de trabajo y utilizarla para recorrer la tabla interna. A su vez el mismo Field Symbol lo podemos utilizar para actualizar la tabla interna
- Si modificamos cualquier campo de la estructura en el Five simboldt, el campo correspondiente a la tabla interna se actualizará
- No necesitamos escribir la sentencia modify que habríamos escrito si hubiéramos usado el área de trabajo o estructura. Esto se debe a que el área de trabajo almacena una copia de la fila de la tabla interna, Mientras que el Field Symbol hace referencia directamente a la fila de la tabla interna. Por lo tanto, el procesamiento de la tabla interna con el Field Symbol es más rápido que el procesamiento de la tabla interna con el área de trabajo o estructura.
La utilización de Field Symbols para realizar SELECT dinámicos
Podemos utilizar Field Symbols para realizar Select dinámicos a tablas de la base de datos de SAP, es decir podríamos crear un programa Abap que cuente con un parámetro en la pantalla de selección en donde se introduzca el nombre de la tabla base de datos que se desea seleccionar y que luego dentro del programa, dependiendo de lo que desee, se realice el Download de los registros de la tabla base de datos a un archivo o que se realice el upload de los registros de la tabla base de datos a memoria para ser procesados.
 
 
 
Sobre el autor
Publicación académica de Alejandra Daniela Naranjo Belmonte, en su ámbito de estudios para la Carrera Consultor ABAP.
Alejandra Daniela Naranjo Belmonte
Profesión: Analista/desarrollador de Software - Mexico - Legajo: ON48V
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alejandra Naranjo