🚀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

1. Field Symbols Tipo de sentencia ABAP que se usar para trabajar datos de forma dinamica en tiempo de ejecuciòn. Pero no son muy flexibles por lo siguiente: - Si quieres procesar te permite especificar el offset y desplazarlo de forma dinàmica. - Se puede usar el Field Symbol para tomar atributos tecnicos. Solo se debe usar los Field Symbols cuando no se pueda llegar a los resultado usando las sentencias convencionales de ABAP. 2. Declaraciòn de un Field Symbol la sintaxis es: FIELD-SYMBOLS <FS> [<type>|STRUCTURE <s> DEFAULT <wa>]. 3. Asignaciòn de datos a un Field Symbols Se usa la sentencia ASSIGN de siguiente manera: ASSIGN <f> TO <FS>.

Acceder a esta publicación

Creado y Compartido por: Daniel Arias Sarmiento

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

Tratamiento de Archivos y Field Symbols Que son los Field Symbols: 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. Los Field Symbol nos proveen de gran flexibilidad debido a que: Si queremos procesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinamica. Se puede forzar a un field symbol para que tome diferentes atributos tecnicos que los del campo asignado a el. Declaracion de un Field Symbol: Usaremos la siguiente sintaxis: FIELD-SYMBOLS <FS>[<type>|STRUCTURE <s> DEFAULT <wa>]. Asignacion de dato a un Field Symbol: Para asignarle datos usaremos la sentencia ASSIGN.

Acceder a esta publicación

Creado y Compartido por: Juan Fernando Guerra Mata / Disponibilidad Laboral: FullTime

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

que son los field Symbols es un tipo de sentencia abap que nos permite trabajar con los datos de los programas en forma dinamica en tiempo de ejecucion. al contrario de lo que sucede con el acceso estatico de los datos, donde necesitamos especificar el nombre de un objeto para poder hacer algo con el, los Field Symbols nos permite acceder y pasar datos cuyos nombres y atributos no conocemos hasta el momento de la ejecucion. se puede considerar a los field symbols como nombres simbolicos 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 nos proveen de gran flexibilidad debido a que: si queremos procesar partes de campos, nos permite especificar...

Acceder a esta publicación

Creado y Compartido por: Oscar Sebastian Caicedo Carlier / Disponibilidad Laboral: PartTime + Carta Presentación

*** 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 Senior

1|QUE SON LOS FIELD SYMBOLS ES UN TIPO DE SENTENCIA ABAP QUE NOS PERMITE TRABAJAR CON LOS DATOS DE LOS PROGRAMAS EN UNA FORMA DINAMICA DE TIEMPO DE EJECUCION. LOS FIELD SYMBOL NOS PERMITEN ACCEDER Y PASAR DATOS CUYOS NOMBRES Y ATRIBUTO NO CONOCEMOS HASTA EL MOMENTO DE LA EJECUCION. LOS FIELD SYMBOL NOS PROVEEN DE GRAN FLEXIBILIDAD DEBIDO A QUE : SI QUEREMOS PROCESAR PARTES DE CAMPOS, NOS PERMITE ESPECIFICAR EL OFFSET Y EL DESPLAZAMIENTO DE UN CAMPO EN FORMA DINAMICA SE PUEDE FORZAR A UN FIEL SYMBOL PARA QUE TOME DIFERENTES ATRIBUTOS TECNICOS QUE LOS DEL CAMPOS ASIGNADO 2| DECLARACION DE UN FIELD SYMBOL SINTAXIS FIELD-SYMBOLS <FS> [<TYPE>|STRUCTURE <S> DEFAULT <WA>] SI NO ESPECIFICAMOS UN TIPO A UN FIELD SYMBOL ESTE PUEDE...

Acceder a esta publicación

Creado y Compartido por: Luis Eugenio Leyva Orozco

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

SAP Senior

FIELD SYMBOLS Es un tipode sentencia ABAP que nos permite trabajar con los datos de los programas en forma dinamica en tiempo de ejecucion. Si queremos procesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinamica, Se puede forzar a un FIELD Symbol para que tome diferentes atributos tecnicos que los campos asignados a el. La mayoria de los errores que comentamos en su utilizacion, lo detectaremos recien en tiempo de ejecucion. Lo cual lo hace mas dificil de detectar. Declaracion de un FIELDSYMBOL. FIELD-SYMBOLS nombre TYPE estructura. Si no especificamos un tipo de un FIELD SYMBOLS este puede contener cualquier dato. Cuando le asignamos un dato, este hereda los atributos...

Acceder a esta publicación

Creado y Compartido por: Jessica Daiana Garcete Paez / Disponibilidad Laboral: PartTime + Carta Presentación

 


 

👌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!