http://www.teknodatips.com.ar Notas técnicas – Tips de SAP Netweaver ABAP Tip en breve Teknoda “SAPping” (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) "Tips en breve/Tips en detalle" se envía con frecuencia variable y absolutamente sin cargo como un servicio a nuestros clientes SAP. Contiene principalmente notas técnicas y no contiene mensajes publicitarios. Conteste este mail con asunto “REMOVER” si no desea recibir más esta publicación. Si desea suscribir otra dirección de e-mail para que comience a recibir los tips envíe un mensaje desde esa dirección a sapping@teknoda.com Uso de Field Symbols para la conversión de caracteres a ASCII Tema: Field Symbols, Conversión. Utilidad: Cómo obtener la configuración ASCII de un string mediante el uso de field symbols. Nivel: Intermedio. 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: a) 20020624 b) 24062002 c) 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. IMPORTANTE Copyright 2002 Teknoda S.A. Junio 2002. SAP, R/3 y ABAP son marcas registradas de SAP AG. Teknoda agradece el permiso de SAP para usar sus marcas en esta publicación. SAP no es el editor de esta publicación y no es, por lo tanto, responsable de su contenido. La información contenida en este artículo ha sido recolectada en la tarea cotidiana por nuestros especialistas a partir de fuentes consideradas confiables. No obstante, por la posibilidad de error humano, mecánico, cambios de versión u otro, Teknoda no grantiza la exactitud o completud de la información aquí volcada. Dudas o consultas: sapping@teknoda.com