✒️ABAP / Los Field Symbols Por Juan Romero
ABAP Los Field Symbols

Los Field Symbols.
Definición y propósito de los field symbols.
- Los field symbols son sentencias ABAP que permiten trabajar con datos de manera dinámica en tiempo de ejecución.
- A diferencia del acceso estático, los field symbols pueden acceder y manipular datos cuyos nombres y atributos se desconocen hasta el momento de ejecución.
- Funcionan como nombres simbólicos, apuntando al contenido de los datos sin reservar espacio físico para un campo específico.
- Permiten manejar distintos objetos de datos y otorgan gran flexibilidad al programador al poder especificar dinámicamente el offset y el desplazamiento de un campo.
- Es importante usarlos solo cuando no se pueda lograr el mismo resultado con sentencias ABAP convencionales, ya que los errores aparecen solo en tiempo de ejecución y son más difíciles de detectar.
Declaración de field symbols
- Para utilizar un field symbol en ABAP, se deben dar dos pasos: declaración y asignación al objeto de datos.
- Si no se especifica un tipo, el field symbol puede contener cualquier dato, asumiendo los atributos técnicos del campo.
- Es posible especificar tipos genéricos como type any, o tipos concretos como C, I, N, P, X; además de tipos relacionados con tablas: type table, type any table, type index table, type standard table, type sorted table, type hashed table.
- El sistema controla la compatibilidad de tipos en tiempo de ejecución si se especifica un tipo concreto.
Asignación y funcionamiento
- Los field symbols pueden ser asignados a cualquier objeto de datos en cualquier momento de la ejecución.
- La sentencia ASSIGN se utiliza para asociar un objeto de datos a un field symbol, con sintaxis específica dependiendo del tipo de field symbol.
- Si el valor del field symbol se modifica tras la asignación, automáticamente se modifica el valor del objeto de datos original y viceversa.
- Este comportamiento se verifica con ejemplos de asignación estática y dinámica, mostrando cómo los cambios se reflejan en ambas variables.
Uso avanzado con estructuras y tablas
- Se pueden utilizar field symbols para leer registros de una tabla interna o para recorrerla sin necesidad de estructuras o áreas de trabajo adicionales.
- Modificar un campo en el field symbol actualiza directamente el registro correspondiente en la tabla interna, no siendo necesario el uso de la sentencia MODIFY.
- El uso de field symbols hace el procesamiento más rápido que usando áreas de trabajo, ya que referencian directamente la fila de la tabla interna.
Selects dinámicos con field symbols
- Los field symbols permiten realizar selects dinámicos sobre tablas de la base de datos SAP.
- Es posible crear programas que, mediante parámetros de pantalla, determinen la tabla a consultar y realicen descargas o cargas dinámicas de datos.
- El parámetro P_tabla sirve para introducir el nombre de la tabla; P_F_name para el nombre y directorio del archivo de salida; P_down y P_up para descargas y cargas a memoria respectivamente.
- Se declara un field symbol para la tabla interna dinámica y otro para la cabecera dinámica.
- Dependiendo del parámetro seleccionado, se ejecuta el select dinámico y se utiliza el método adecuado para gestionar la descarga o subida de datos usando los field symbols.
- El resultado permite verificar que los field symbols contienen y gestionan correctamente los registros seleccionados.
Tipos de tablas internas
- Se mencionan varios tipos de tablas internas en ABAP: any table, index table, standard table, sorted table y hashed table.
- Las "any tables" permiten definir parámetros genéricos y admiten todas las operaciones válidas para standard, sorted y hashed tables, pero no pueden ser accedidas por índice.
- Los tipos standard y sorted son index tables y permiten el acceso por índice; pueden utilizarse como parámetros genéricos en funciones y formularios.
- El tipo hashed no pertenece a index table, por lo que no se puede pasar como parámetro index table.
- Las standard tables utilizan búsqueda lineal, el tiempo de acceso crece linealmente con el número de registros.
- Las sorted tables mantienen siempre un orden, utilizan búsqueda binaria (binary search) y, si la clave no es única, se accede al elemento con el índice más bajo; el acceso es logarítmico respecto al número de registros.
- Las hashed tables requieren claves únicas y su tiempo de acceso es constante; no admiten acceso por índice y sólo permiten operaciones genéricas de clave o algunas como sort o look.
- Los field symbols permiten trabajar de forma dinámica en situaciones donde las sentencias convencionales no resuelven el problema.
- Aunque su uso puede ser más eficiente para la lectura de registros de tablas internas, su aplicación es muy específica y quizá poco frecuente en la práctica diaria.
- Es importante conocer la existencia de field symbols como alternativa para ciertos escenarios puntuales.
- Se repasa un programa básico de ABAP que ejemplifica el uso de field symbols.
- El programa declara una variable entera y un field symbol tipado como entero.
- Inicialmente el field symbol no está asignado y no puede ser visualizado hasta que se realice el assign.
- Al asignar la variable al field symbol, ambos comparten el mismo contenido; cualquier cambio en el field symbol se refleja en la variable y viceversa.
- El ejemplo paso a paso muestra la utilidad del debug para aclarar dudas sobre el funcionamiento dinámico de los field symbols.
- Se confirma que modificar el field symbol también altera la variable original.
- Este repaso busca consolidar el conocimiento sobre el uso de field symbols y su aplicación puntual dentro del desarrollo en ABAP.
Sugerencias
- Practicar la declaración y asignación de field symbols con y sin tipos específicos.
- Realizar pruebas modificando datos a través de field symbols para entender el impacto en los objetos originales.
- Implementar códigos de ejemplo que utilicen field symbols en selects dinámicos y en procesamiento de tablas internas.
 
 
 
Sobre el autor
Publicación académica de Juan Ignacio Romero, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Juan Ignacio Romero
Profesión: Ing. Sistemas Computacionales - Mexico - Legajo: LJ26F
✒️Autor de: 138 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Juan Romero






Disponibilidad Laboral: FullTime


















