✒️ABAP Los Field Symbols
ABAP Los Field Symbols
¿Qué son los Field Symbols?
Es un tipo de sentencia ABAP que permite trabajar con los datos de los programas en forma dinámica en tiempo de ejecución.
Al contrario de lo que ocurre con el acceso estático de los datos, donde se necesita especificar el nombre de un objeto para poder hacer algo con él, los Field Symbol permiten acceder y pasar datos cuyos nombres y atributos no son conocidos 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.
Los Field Symbol proveen gran flexibilidad debido a que:
- Si se quiere procesar partes de campos, permiten especificar el offset y el desplazamientode 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.
Nota: La mayoría de los errores que se cometan en la utilización de Field Symbols se detectarán en tiempo de ejecución. Esto hace que sean bastante más difíciles de detectar. Por lo tanto, se deben utilizar Field Symbol si no se puede llegar al mismo resultado con las sentencias ABAP convencionales.
Declaración de un Field Symbol
Para declarar un Field Symbol se utiliza la siguiente sintaxis:
FIELD-SYMBOLS <FS> [<tyoe> | STRUCTURE <s> DEFAULT <wa>].
Nota: Si no se especifica un tipo a un Field Symbol, este puede contener cualquier dato. Cuando se asigna un dato al Field Symbol, este hereda los atributos técnicos del dato.
Los tipos de datos genéricos posibles para un Field Symbol son:
- TYPE ANY o sin especificación: Todos los tipos de objetos de datos son aceptados. El field symbol toma los atributos del dato.
- TYPE C, N, P o X: Sólo acepta los tipos de datos C, N, P y X. Toma la longitud y decimales del dato.
- TYPE TABLE: Chequea si la tabla es estándar.
- TYPE ANY TABLE: Chequea si es una tabla interna. Toma todos los atributos de la tabla.
- TYPE INDEX TABLE: Chequea si es una tabla indexada. Toma todos los atributos de la tabla.
- TYPE STANDARD TABLE: Chequea si es una tabla estándar. Toma todos los atributos de la tabla.
- TYPE SORTED TABLE: Chequea si es una tabla sorted. Toma todos los atributos de la tabla.
- TYPE HASHED TABLE: Chequea si es una tabla hashed. Toma todos los atributos de la tabla.
Ejemplo utilización de un Field Symbol:
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: / 'Variable v_valor: ', v_valor.
Asignación de datos a un Field Symbol
Para asignar datos a un Field Symbol se utiliza la sentencia ASSIGN.
Esta asignación es estática ya que se conoce el nombre del campo que se quiere asignar al Field Symbol.
La sintaxis que se utiliza es la siguiente:
ASSIGN <f> TO <FS>.
Ejemplo:
REPORT zprueba_abap_6_7.
DATA: BEGIN OF st_line,
col1(1) TYPE c,
col2 VALUE 'X',
END OF st_line.
FIELD-SYMBOLS <fs> LIKE st_line.
ASSIGN st_line TO <fs>.
MOVE <fs>-col2 TO <fs>-col1.
 
 
 
Sobre el autor
Publicación académica de Miguel Mauricio Sierra Cardona, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Mauricio Sierra Cardona
Profesión: Ingeniero de Desarrollo E Innovación - Colombia - Legajo: GN43E
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Miguel Sierra