![](/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/124.jpg)
Field Symbol
Es una sentencia ABAP que nos permite trabajar con datos de programas de forma dinamica en tiempo de ejecucion.
A diferencia del acceso estatico de los datos en donde especificamos el nombre de un objeto, los field symbols nos permiten pasar datos cuyos nombres y atributos no se tengan hasta el momento de la ejecucion.
Son como nombres simbolicos de los datos ya que el sistema trabaja con el contenidos de los datos asignados y no con el contenido de un field symbol.
No reservan espacio fisico para un campo, si no que apunta a su contenido, puede apuntar a cualquier objeto de datos.
Proveen gran flexibilidad porque: si se quiere procesar partes de campos, podemos especificar el offset y el desplazamiento de forma dinamica; tambien se puede forzar a un field symbol para que tome atributos tecnicos del campo.
Declaracion de un Field symbol
Se deben realizar dos pasos: declarar el field symbol y asignar al mismo el objeto de datos.
FIELD-SYMBOLS<FS>[<type>|STRUCTURE<s>DEFAULT<wa>]
Si no se especifica tipo de dato este puede contener cualquier dato, osea que asume todos los atributos tecnicos del campo. Si se especifica el sistema contrala compatibilidad con el campo al que se asocia en el momento de ejecucion.
Asignacion de datos a un Field Symbol
En un programa se le pueden asignar objetos de datos en cualquier momento, como tambien una serie de diferentes objetos de datos.
La asignacion es estatica ya que sabemos el nombre del campo que le deseamos asignar.
Para asignar datos se usa ASSING:
ASSING <F> TO <FS>.
F es el campo asignado y FS es el nombre del symbol.
Si asignamos valor a una variable o campo y luego se la asignamos al symbol, si le cambiamos el valor al symbol entonces tambien cambiara al de la variable o campo.
Utilizacion de Field Symbols con estructuras
Podemos leer un registro de una tabla interna con un symbol en lugar de una estructura, por ej:
READ TABLE ti_mara ASSIGNING <fs_mara> WITH KEY matnr = 'MAT1'.
Tambien podemos recorrer una tabla interna y actualizarla con un symbol en lugar de una estructura, por ej:
LOOP AT ti_mara ASSIGNING <fs_mara>.
<fs_mara>-matkl = 'DEMO'.
ENDLOOP.
Si modificamos el campo de la estructura en el symbol, el campo de la tabla interna se actualizara.
No se necesita la sentencia MODIFY ya que un area de trabajo es una copia de la fila de la tabla interna, mientras que el symbol hace referencia directamente a la fila de la tabla interna.
 
 
 
Sobre el autor
Publicación académica de Luciano Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
Luciano Martinez
Profesión: Consultor Abap - Argentina - Legajo: LR86R
✒️Autor de: 66 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Me capacito para desempeñar el rol de un consultor abap, además soy sql developer jr, como ambos lenguajes (sql y abap) se relacionan, hace que mi perfil sea más completo y se complemente.
Certificación Académica de Luciano Martinez