✒️ABAP / Los Field Symbols Por Sergio Beltran Castaneda

Selector Alummnos / Empresas

ABAP Los Field Symbols

ABAP Los Field Symbols

FIELD SYMBOLS

ABAP permite acceder a los objetos (data object) que hayan sido declarados bien de forma estática (por el nombre que se le haya dado), o bien de forma indirecta, a través de un field symbol. El field symbol es un nombre simbólico que permite operar con los distintos campos (fields).

Son los punteros referenciados de SAP. Un puntero es una variable que hace referencia a una región de memoria, es decir son objetos de datos que apuntan al contenido de una variable. Los “field symbols” son nombres simbólicos de otros campos. NO reservan espacio físicamente para un campo sino que “apuntan” a su contenido. Un field symbol puede apuntar a cualquier objeto de datos.

Para el sistema no hay diferencia entre operar con el objeto o con el field symbol, sin embargo, resulta más eficiente operar con punteros que con los objetos, ya que los punteros ocupan mucho menos espacio en memoria (a efectos prácticos se puede decir que no ocupan espacio en memoria, aunque en realidad ocupan el espacio justo para guardar una dirección de memoria, es decir, cuatro bytes).

A la hora de asignarle un valor se usará la sentencia ASSIGN para suministrar campos concretos. Otra opción puede ser usar la sentencia STRUCTURE para asignarle una estructura. Para limpiar el puntero y que no direccione a nada se usará la sentencia UNASSIGN.

Sintaxis:

FIELD-SYMBOLS <fs> [ <tipo> ].

En la sintaxis de los field-symbols, los símbolos "<" y ">" en <fs> forman parte de la sintaxis de la sentencia. Sirven para identificar un field-symbol en el código fuente de un programa. Con esta sentencia definimos el field-symbol en código del programa. Un field-symbol puede ser especificado con o sin identificación de tipo. Si no especificamos ningún tipo, se puede asignar cualquier objeto de dato, en tiempo de ejecución, al field-symbol. Durante el proceso de asignación, el field-symbol adquiere todos los atributos del objeto de dato.

En la opción <tipo> se puede utilizar la especificación directa (con TYPE), o la indirecta (con LIKE). Con la especificación de tipo, el sistema comprueba si los tipos del field-symbol y el dato son compatibles. En caso de no ser compatibles, se produce un error en tiempo de ejecución.

FIELD-SYMBOLS <fs> STRUCTURE <estructura> DEFAULT <campo>.

En esta sentencia se define el field-symbol estructurado <fs>, el cual apunta por defecto al campo <campo>. El sistema obliga a un campo inicial, aunque se puede modificar a posteriori. El field-symbol <fs> adquiere la estructura <fs> que puede ser cualquier field-string o estructura definida en el diccionario de datos. Las estructuras del diccionario de datos referenciadas en esta sentencia no tienen que ser declaradas con la sentencia TABLES. La estructura se debe especificar sin encerrar entre comillas (""), sin ser posible su especificación en tiempo de ejecución.

Si <estructura> no tiene componentes de tipo F o I, <campo> puede ser cualquier campo interno con la longitud de <estructura>. Si <campo> es menor que <estructura> aparecerá un error de sintaxis al verificar el programa.

Si durante la ejecución se asigna un campo al field-string, el sistema verificará la longitud. Si la longitud es menor a la de la estructura entonces se producirá un error en tiempo de ejecución. Si la estructura <estructura> tiene campos de tipo F o I, se debe especificar un campo con la misma estructura.

DECLARACIÓN DE UN FIELD SYMBOL

Se puede declarar un field symbol sin o con especificaciones de “tipo”. Si no se especifica el “type”, el field symbol asume todos los atributos técnicos del campo asignado. Si se especifica type, 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.

La sintaxis de la declaración es:

FIELD-SYMBOLS <FS> [<type>|STRUCTURE <s> DEFAULT <wa>]

Los field symbols proveen gran flexibilidad ya que permiten, entre otras cosas procesar secciones de campos (se pueden especificar modificadores de desplazamiento y longitud dinámicamente), direccionar partes de un campo (asignando un field symbol a otro), lograr que un field symbol tome distintos atributos técnicos de los campos asignados a él, etc. Pero aumentan las posibilidades de error o de incorrectas asignaciones de datos durante la corrida, dado que los campos se asignan recién en el momento de ejecución del programa y las verificaciones de sintaxis y chequeos de seguridad son muy limitados para las operaciones que incluyen field symbols.

ASIGNACIÓN DE DATOS A UN FIELD SYMBOLS

En un programa, se pueden asignar objetos de datos a field symbols en cualquier momento, como también asignar una serie de diferentes objetos de datos a un field symbol. Para la asignación se utiliza la sentencia ASSIGN, que tiene varias variantes y parámetros. Una de estas variantes es la adición TYPE con los Abap types C, D, F, I, N, P, T y X que permiten setear el tipo de datos de un field symbol independientemente del objeto asignado.

Mediante la sentencia FIELD-SYMBOLS se declaran los field symbols dentro del programa. El field symbol puede ser declarado con un tipo definido si se conoce el tipo de la variable al que va apuntar, en caso contrario puede ser de tipo ANY.

Cuando un objeto de datos sea asignado a un field symbol hay que tener en cuenta que el tipo de dato del objeto asignado debe ser compatible con el tipo de dato del field symbol, si esto no se cumple puede ocurrir un error de sintaxis o de tiempo de ejecución, el error en tiempo de ejecución ocurre cuando el tipo de dato del field symbols es ANY.

Cuando ya se desee definir el field symbol lo que se hace es asignar el objeto de datos al field symbol mediante la sentencia ASSIGN.

Las referencias a los datos son punteros a los objetos de datos, para definir una referencia se hace usando la sentencia TYPE REF TO. La sentencia TYPES <reftype> TYPE REF TO data define una referencia a un objeto de datos (data object).

Con GET REFERENCE OF <data object> INTO <reference> se escribe la dirección de un data object al valor referencia.

Este apartado está muy relacionado con programación orientada a objetos. Se debe recordar que un objeto de datos (data object) es una parte del repositorio cuyo contenido puede ser direccionado e interpretado por el programa. Todos los objetos de datos deben de ser declarados dentro de un programa ABAP y no son persistentes, es decir sólo existen mientras el programa esté en ejecución. Se localizan rápidamente en el programa, pues todos para ser declarados, empiezan con la sentencia DATA.

CASTING

Se usa TYPE CASTING cuando se asigna un data object a un field symbol. En el caso expuesto el nombre de la tabla de la base de datos no se da a conocer hasta el momento de ejecución.

Dentro de la ejecución del programa se irán escribiendo los datos de la select en la cadena line, es en la línea posterior donde se podrá acceder a line como si fuera una estructura gracias a la sentencia CASTING. De esta manera, si se conocieran los nombres de los componentes dentro de la estructura, se podrían presentar llamándolos a cada uno por su nombre: WRITE <fs_wa>-.

Sin embargo, como se ha comentado, que no conocemos la tabla hasta el momento de su ejecución, por lo tanto no se puede hacer referencia de forma directa a sus campos. Para solucionar este problema se hace uso de la variante ASSIGN COMPONENT a través de la cual cada componente de <fs_wa> es asignado uno a uno al field symbol <fs_comp>.

Esta posibilidad tiene un problema y es que la dirección de line debe de satisfacer las mismas reglas de direccionamiento que la estructura de una tabla (la dirección deberá ser divisible por cuatro), esto se puede forzar declarando un campo entero “dummy” justamente antes de declarar la línea (ya que los enteros son siempre almacenados en direcciones que son divisibles por cuatro).


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para el Curso SAP ABAP.

SAP Master

Sergio Armando Beltran Castaneda

Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K

✒️Autor de: 70 Publicaciones Académicas

🎓Cursando Actualmente: Curso SAP ABAP Avanzado

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.

Certificación Académica de Sergio Beltran

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Los Field Symbols" de la mano de nuestros alumnos.

SAP Expert


El resumen de "Los Field Symbols" se centra en su papel como una herramienta de programación avanzada en ABAP que permite el manejo de datos de forma dinámica en tiempo de ejecución. Concepto y Propósito Los Field Symbols son un tipo de sentencia ABAP que permite trabajar con datos de los programas de manera dinámica en tiempo de ejecución. A diferencia del acceso estático a los datos, los Field Symbols permiten acceder y transferir información cuyos nombres y atributos solo se conocen en el momento de la ejecución. Características clave de los Field Symbols: Nombres Simbólicos: Se consideran nombres simbólicos de los datos. Punteros (Pointers):...

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


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...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Conceptos Clave: · Qué son: Punteros o alias que "apuntan" al contenido de una variable o campo en memoria, sin ocupar espacio extra. · Para qué sirven: Para trabajar con datos de forma dinámica cuando no se conocen los nombres o estructuras de los datos hasta el runtime. · Declaración: FIELD-SYMBOLS: <fs_name> [TYPE <type>]. · Si no se especifica tipo, adopta el tipo del campo asignado. · Asignación: ASSIGN <campo> TO <fs_name>. · Una vez asignado, usar <fs_name> es como usar la variable original. Modificar <fs_name> modifica la variable original. · Uso común con tablas internas: · READ TABLE...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: Los Field Symbols son punteros dinámicos que permiten acceder y manipular datos sin conocer su estructura en tiempo de diseño. ¡Clave para operaciones avanzadas y optimización de rendimiento en ABAP! 1 ¿Qué son los Field Symbols? Definición clave: "Placeholders que apuntan a datos en memoria, permitiendo manipulación dinámica sin reservar espacio físico." Características principales: Flexibilidad: Trabajan con datos cuyos atributos se determinan en runtime. Eficiencia: Acceso directo a memoria (más rápido que work areas). Riesgo: Errores detectados en runtime (¡validar siempre...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



Los Field Symbols en SAP ABAP son una poderosa característica del lenguaje que permite manejar variables de forma dinámica durante la ejecución de un programa. Se utilizan como referencias simbólicas a datos que aún no están definidos completamente en el momento de declarar el símbolo. Esta flexibilidad los convierte en una herramienta esencial en la programación avanzada con ABAP. Un Field Symbol (símbolo de campo) es un tipo de puntero que no reserva espacio en memoria al ser declarado, sino que actúa como un alias temporal para otros datos. Es decir, hace referencia a datos existentes sin duplicarlos. Ventajas de usar Field Symbols Eficiencia: Evita la copia de datos...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Los Field Symbols 1 Qué es un Field Symbol? En esta sección se introduce el concepto de Field Symbol en ABAP. Un Field Symbol actúa como un puntero o alias que no contiene datos por sí mismo, sino que hace referencia temporal a un área de memoria que puede cambiar dinámicamente durante la ejecución del programa. Características de los Field Symbol Apunta a una posición en la memoria sin copiar datos. Permite manipular datos de manera indirecta y eficiente. Su comportamiento es similar a un puntero en otros lenguajes como C. 2 La declaración de un Field Symbol En esta sección se explica cómo se declara un Field Symbol...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

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...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


El field symbol. 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 , se trata de un puntero cuyo contenido es la dirección de un objeto, sin reservar espacio en memoria, para el sistema no hay diferenciaentre operar con el objeto con el field symbol sin embargo resulta mas eficiente operar con punteros que con objetos, ya que estos ocupan menos espacio en memoria (cuatro Bytes). Todas las instrucciones con field symbol se ejecutan el los campos asignados, por ejemplo una sentencia MOVE de un field symbol se ejecuta haciendo que el segundo apunte al mismo objeto que el primero, si no se especifica el field symbol este hereda las características...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

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...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

FIELD SIMBOL: 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 no 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 Symbols. Los Field Symbols no reservan espacio físicamente para un campo, sino que “apuntan”...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:


🔎Googlear en CVOSOFT:
Googlear: "ABAP - Los Field Symbols"

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!