PDA

Ver la Versión Completa : iniciarme en field - symbols


albermora
30/05/12, 15:48:59
Hola,

Llevo solo unos meses como programador y tengo que usar field - symbols y no tengo ni idea.

Os cuento: me viene un txt con campos separados por tabulador, y el programa lo vuelca en una tabla interna con los campos que vienen. He de decir que en txt viene la primera línea que son las cabeceras de las columnas.

Pero resulta que a los usuarios les ha dado por quitar alguna de las columnas (incluida la cabecera correspondiente) y al pasar el txt a la tabla interna creada, al faltar alguna de las columnas, asigna mal valores a la tabla y peta.

La única forma que he visto es hacerlo con field - symbols, se que son una especie de punteros, pero mi experiencia con punteros es mas bien nula.

Haber si alguien me puede aportar algo.

Muchas gracias de antemano

SAPING
01/06/12, 14:44:06
No creo que field-symbols se use para eso.
Yo mucha experiencia con field-symbols tampoco tengo, sin embargo los uso cuando tengo que optimizar algun recorrido de tabla (LOOP) y modificar algun valor.
El field-symbol, por como yo lo entiendo y lo uso, seria un puntero, como vos decis, de tipo estructura.
O sea, por ejemplo:

FIELD-SYMBOLS: <fs_bseg> TYPE bseg.

LOOP AT lt_bseg ASSIGNING <fs_bseg>.
<fs_bseg>-XXXXXX = #valorX.
ENDLOOP.

En este caso lo use para actualizar el campo XXXXXX de mi tabla interna lt_bseg, ya que el field symbol lo que hace es apuntar directamente a la linea de la estructura, por lo que las modificaciones que realices las hace directamente en la tabla.

Repito, NO se mucho de field-symbols, por eso es que los uso solo para estos casos.

Para tu caso particular yo modificaria la estructura de la tabla quitandole las columnas que no se necesitan mas y listo....
Si esta esto en un TYPE joya, modificas eso y listo, el programa no lo tendrias que tocar mucho (salvo para eliminar las lineas donde se manejan las columnas obsoletas).

Espero te sirva para algo aunque sea.

Slds.