![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los Field Symbols
ABAP Los Field Symbols
![ABAP Los Field Symbols ABAP Los Field Symbols](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/276.jpg)
Que es un Field Symbol: es un tipo de sentencia ABAP que nos permite trabajar con los datos programa de forma dinámica en tiempo de ejecución.
Los Field Symbols como nombres simbólicos de los datos, ya que cuando se utiliza, el sistema trabaja con el contenido de los datos asignados y con el contenido del Field Symbol.
Los Field Symbols no reservan espacio ficicamente para un campo sino que "apuntan" a su contenido.
Un Field Symbols puede apuntar a cualquir objeto de datos.
Los Field Symbols nos proveen de gran flexibilidad debido a que:
- Si queremos procesar partes de campos, nos permite especificar el offset y el desplasamiento de un campo en forma sinámica.
- Se puede formar un Field Symbols para que tome diferentes atributos técnicosdel campo asignado a él.
La declaración de un Field Symbol:
Para poder utilizar un Field Symbols en un programa ABAP debemos realizar dos simples pasos:
- Declarar el Field Symbol
- Asignar al Field Symbol el objeto de datos
La asignación de datos a un Field Symbol: para asignar datos a un Field Symbol utilizamos la sentecia ASSIGN.
La sintaxis de la sentencia ASSIGN es la siguiente:
ASSIGN <F> TO <FS>. ( siendo F el campo asignado al Field Symbol y FS el nombre del Field Symbol.
Para comprendercomo funcionan los Field Symbols analicemos paso a paso la ejecución del código anterior y el resultado de la impresión por pantalla. Para ello colocamos un breakpoint en la sentencia ASSIGN y ejecutamos paso a paso. Tal como vemos en el código V_VARIABLE tiene asignado el valor 2. Luego de ejecutar la sentencia ASSIGN vamos a ver que el Field Symbol FS_NUM va a tener asignado el mismo valor que VVARIABLE es decir 2. Si ahora asignamos al Field Symbol FS_NUM el valor 4. Entonces automaticamente también se asigna el valor 4 a V_VARIABLE.
La atilización de Field Symbols cuando trabajamos con estruturas
Podemos leer un registro de una tabla interrna utilizando un Field Symol 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.
Debemos tener en cuenta los siguientes puntos:
- Si modificamos cualquier campo de la estructura en el Field Symbol, el compo correspondiente en la tabla interna se actualizará.
- No necesitamos escribir la sentencia MODIFY que abriamos escrito si hubíeramos usado el áerea de trabajo o estructura. Esto se debe a que el área de trbajo almacena una copia de la fila de la tabla interna, mientras que el Field Symbol hace referencia derectamente a la fila de la tabla interna. Por lo tanto, el procesamiento de la tabla interna con el Field Symbol es más rapido que el procesamiento de la tabla interna con el áerea de trabajo o estructura.
La utilización de Field Symbols para realizar select dinámicos: podemos utilizarField Symbols realizar SELECT dinámicos a tablas bases de datos de SAP, es desir podriamos crear un programa ABAP que cuente que un parámetro en la pantalla de selección en donde se introduzca el nomble de la tabla base de datos que se desea seleccionar y que luego dentro de programa, dependiendo de lo que desee, se realice el download de los registros de 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.
El código ABAP correspondiente a esta lógica que acabamos de mencionar seria asi:
Primero en la pantalla de selección declaramos el parámetro P_TABLA para introducir el nombre de la tabla base de datos, el parámetro P_FNAME para introducir el directorio y nombre del archivo de salida, el parámetro P_DOWN para seleccionar en casoen caso que deseemos realizar la descarga de los registros de la tabla base de datos al archivo de salida y el parámetro P_UP para subir a memoria los registros de la tabla base de datos a cual le realizamos el SELECT. Luego declaramos dos Field Symbols FS_TABLA para la tabla interna dinámica y FS_CAB para la estructura o cabecera dinámica. A continuación creamos el tipo de dato y asignamos los Field Symbols. Dentro del evento START-OF-SELECTION, si seleccionamos el parámetro download entonces realizamos el SELECT dinámico a la tabla base de datos introducida por parámetros de la tabla base de datos al archivo de salida. Y si seleccionamos el parámetro de upload entonces ejecutamos el método GUI_UPLOAD de la clase CL_GUI_FRONTEND_SERVICES para subir a memoria los registros de la tabla base de datos. Si ejecutamos el programa y completamos la pantalla de selección con la tabla base de datos MARA. Verificamos que luego de ejecutado el SELECT dinámico, el Field Symbol fs_tabla contiene los registros seleccionados de la tabla base de datos MARA. Si ejecutamos asta el final del programa verificamos que se genera correctamente el archivo de salida. Y si abrimos el archivo de salida verificamos su contenido.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 93 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
Certificación Académica de Javier Angel