🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP Los Field Symbols

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


 

 

 


Sobre el autor

Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor 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: Consultor ABAP Nivel 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 Master

FIELD SYMBOLS. Es un tipo de sentencia abap que nos permite trabajar con los datos de los programas en forma dinamica en tiempo de ejecusión.Los field symbols nos permiten acceder y pasar datos cuyos nombres y atributos no conocemos, hasta el momento de la ejecusión. DECLARACION DE UN FIELD SYMBOLS. utilizaremos la siguiente sintaxis: FIELD-SYMBOLS <fs> [<TYPE> estructure <s> DEFAULT <was>] ASIGNACION DE DATOS A UN FIELD SYMBOLS. Utilizamos la sentencia ASSIGN, utilizaremos la siguiente sintaxis: ASSIGN <f> TO <FS>

Acceder a esta publicación

Creado y Compartido por: Maria Ysabel Colina De Magdaleno

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

SAP Senior

Field Symbols Sentencia ABAP que nos permite trabajar con los datos de los programas en forma dinámica en tiempo de ejecución. Se concideran como nombres simbolicos de lso datos ya que cuando se utilizan, el sistema trabaja con el contenido de los datos y no con el del Field Symbols.(Es un tipo de variable) FIELD-SYMBOLS( fs)[(type) STRUCTURE (s) DEFAULT (wa)] cuando asignamos un dato al field symbol este hereda los atributos tecnicos del dato. Para asignar datos a un FIELD symbol se uda la sentencia ASSIGN, y la asignacion es estatica LA mayoria de los errores con los field symnbols son detectados en tiempo de ejecucion, esto hace que sean dificiles de detectar.

Acceder a esta publicación

Creado y Compartido por: Carolina Sanchez

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

SAP Master

1 - Qué son los Field Symbols?. FIELD SYMBOL: Sentencia ABAP para acceder a los datos de los programas en forma dinámica en tiempo de ejecución. Los FIELD SYMBOLS proveen 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 un Field Symbols para que tome diferentes atributos técnicos que los del campo asignado a el. Offset: Es cuando separamos un campo en varios strings, y cada string se considera una dato independiente. Solo debemos utilizar Field Symbols cuando no podemos llegar al mismo resultado con las sentencias ABAP convencionales, ya que como los errores se detecan en...

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

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

SAP Senior

FIELD SYMBOL Sentencia abap que permite trabajar con datos de los programas en forma dinámica en tiempo de ejecución. Se declaran de la siguiente manera: FIELD-SYMBOLS <>[<type> |STRUCTURE <s> DEFAULT <wa>]. Si no se espefica un tipo a un field symbol este puede contener cualquier dato. Cuando se asigna un dato al field symbols este hereda los atributos técnicos del dato. Para asignar datos a un field symbol utilizamos la sentencia assign. ASSIGN <f> TO <FS>

Acceder a esta publicación

Creado y Compartido por: Alberth Julian Bolanos Bravo

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

SAP Master

TRATAMIENTO DE ARCHIVOS Y FIELD SYMBOLS QUE ES UN FILED SYMBOL es un tipo de sentencia ABAP que nos permite trabajar con los datos de los programas en forma dinamica en tiempo de ejecucion nombres simbolicos de los datos este nos permite especificar el offset y el desplazamiento en forma dinamica DECLARACION DE UN FIELD SYMBOL FIELD-SYMBOLS <FS> [<TYPE> |STRUCTURE <s> DEFAULT <wa>]. ASIGNACION DE DATOS para asignar datos aun field symbols utilizamos la sentencia ASSIGN la asignacion que utilizamos es estatica ya que sabemos el nombre del campo que queremos asignar ASSIGN <f> to <FS>

Acceder a esta publicación

Creado y Compartido por: Andres Felipe Escobar Lopez

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

SAP SemiSenior

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. Los Field Symbols se pueden considerar 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 symbol. Los field symbols proveen flexibilidad debido a : - Si queremos proesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinámica. - Se puede forzar a un Field Symbol para que tome diferentes atributos tecnicos que los del campos asignado a él. Declaración de un field symbol. FIELD-SYMBOLS <FS>[<type>|STRUCTURE...

Acceder a esta publicación

Creado y Compartido por: Fabio Gallo

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

SAP Master

FIELD SYMBOLS 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 con el, los Field Symbol 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 Symbol 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 symbol . El Field Symbol se declara de la siguiente manera FIELD-SYMBOLS <FS> [ <TYPE>|STRUCTURE...

Acceder a esta publicación

Creado y Compartido por: Juan Carlos Ayala Chira

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

SAP Senior

Field Symbols. Field Symbols: Sentencia ABAP que nos permite acceder a los datos de los programas en forma dinámica. Tiene gran flexibilidad ya que se puede procesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinámica. Se puede forzar a un field symbol para que tome diferentes atributos técnicos que los del campo asignado a él. Assign: Sentencia ABAP que se utiliza para asignar datos a un field symbol.

Acceder a esta publicación

Creado y Compartido por: Rafael Razo

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

SAP Senior

1. ¿Qué son los Field Symbols?. 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. Son muy flexibles. 2. Declaración de un Field Symbol?. FIELD-SYMBOLS <FS> [<type>|STRUCTURE <s> DEFAULT <wa>]. Ejemplo: REPORT zprueba_abap_6_5. DATA: v_valor(3) VALUE 'ABC'. FIELD-SYMBOLS <f>. ASSIGN v_valor TO <f>. WRITE: / 'Contenido de v_valor:', <f>. <f> = 'XYZ'. WRITE: / 'Variables v_valor:', v_valor. 3. Asignación de datos a un Field Symbol. ASSIGN ASSIGN <f> TO <FS>. REPORT zprueba_abap_6_7. DATA: BEGIN OF st_line, col1(1) TYPE c, col2 VALUE 'X',...

Acceder a esta publicación

Creado y Compartido por: Calixto Saldarriaga

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

SAP Senior

FIELD SYMBOL Es un tipo de sentencia ABAP que nos permite trabajar con los datos de los programas en forma dinamica en tiempo de ejecucion. Decalracion de Field Symbol. FIELD-SYMBOLS <FS> [type>|STRUCTURE <s> DEFAULT <wa>] nota: Si no especificamos un tipo a un field symbol, este puede contener cualquier dato. Cuando asignamos un dato al field symbol, este hereda los atributos tecnicos del dato.

Acceder a esta publicación

Creado y Compartido por: David Camacho Espinoza

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.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:

 


 

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