✒️ABAP Los Field Symbols
ABAP Los Field Symbols
¿Qué son los 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 algo con él,
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.
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 dinámica.
Se puede forzar a un Field Symbol para que tome diferentes atributos técnicos que los del campo asignado a él.
La mayoría de los errores que cometamos en la utilización de Field Symbols los detectaremos recién en tiempo de ejecución.
Esto hace que sean bastante más difíciles de detectar.
Por lo tanto, solo debemos utilizar Field Symbol si no podemos llegar al mismo resultado con las sentencias ABAP convencionales.
Declaración de un Field Symbol
Para declarar un Field Symbol vamos a utilizar la siguiente sintaxis:
FIELD-SYMBOLS <fs> [<tipo>|Estructura <variable|estrucutra> DEFAULT <variable|estructura>].
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 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 adopta los atributos del dato.
TYPE C, N, P o X
Solo los tipos de datos C, N, P y X son aceptados. El field symbol adopta la longitud y decimales del dato.
TYPE TABLE
El sistema chequea si la tabla es estándar.
TYPE ANY TABLE
El sistema chequea si el campo es una tabla interna. El field symbol hereda todos los atributos de la tabla.
TYPE INDEX TABLE
El sistema chequea si el campo es una tabla indexada. El field symbol hereda todos los atributos de la tabla.
TYPE STANDARD TABLE
El sistema chequea si el campo es una tabla estándar. El field symbol hereda todos los atributos de la tabla.
TYPE SORTED TABLE
El sistema chequea si el campo es una tabla sorted. El field symbol hereda todos los atributos de la tabla.
TYPE HASHED TABLE
El sistema chequea si el campo es una tabla hashed. El field symbol hereda todos los atributos de la tabla.
Veamos un ejemplo de la utilización de un Field symbol:
DATA: v_valor(3) VALUE 'ABC'.
FIELD-SYMBOLS <f> TYPE any.
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 Symbols
Para asignar datos a un Field Symbol utilizamos la sentencia ASSIGN.
La asignación que utilizamos es estática ya que sabemos el nombre del campo que queremos asignar al Field Symbol.
La sintaxis utilizada sería la siguiente:
ASSIGN <variable|estructura> TO <fs>.
Veamos un ejemplo:
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 Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial