Uso de Field Symbols en ABAP para la conversión de caracteres a ASCII
Cómo obtener en ABAP la configuración ASCII de un string mediante el uso de field symbols
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 poder utilizarlos en un programa se debe:
1) Definir el field symbol.
2) Asignar al field symbol el objeto de datos
1)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>]
2) 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.
Ejemplo:
data txt(8) value ’20020624’. data hexa(1)value ’X’. field-symbols <fs>.
assign txt to <fs>. write / <fs>. “ a) assign txt to <fs> type ´D´. write / <fs>. “ b) assign txt to <fs> type hexa. write / <fs>. “ c) |
El resultado sería:
1) 20020624
2) 24062002
3) 3230303230363234
En el ejemplo el string txt es asignado al field symbol tres veces. En la primera asignación no se especifica tipo. En la segunda, el tipo especificado es D y la salida depende de la definición que tenga el usuario actual en su registro maestro. En el tercer assign, la salida corresponde al código hexadecimal de los caracteres contenidos en txt. Estos dependen de la plataforma, en este caso es ASCII.
Para tener en cuenta:
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.
Por estas razones, se recomienda el uso de los field symbols sólo si no se pueden alcanzar los mismos resultados usando otras sentencias ABAP.
Copyright Teknoda S.A.
IMPORTANTE: “Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |
Ficha Técnica: Notas técnicas – Tips de SAP Netweaver ABAP
Tema: Field Symbols, Conversión ASCII. Descripción: Cómo obtener en ABAP la configuración ASCII de un string mediante el uso de field symbols.