Formar nombre del campo por medio de una variable

Hola consultores,

Estoy realizando un modificación a una tabla y la quiero hacer de forma dinámica, pero me surgió una duda.

Tengo una tabla interna de la siguiente forma, esta es la tabla que quiero modificar, específicamente quiero modificar donde dice campoX en la columna Valor

------------ ti_campos ------------------

| Linea    |   Campo   | Valor              |
|     1    |  campo1   | texto campo1 texto |
|     2    |  campo2   | texto campo2 texto |
|     3    |  campo3   | texto campo3 texto |
|     4    |  campo4   | texto campo4 texto |

----------------------------------------------

y tengo una línea de cabecera que extrae y arma con valores de varias tablas de sap

------------------ wa_info ----------------------

| Columna1 | campo1 | campo2 | campo3  | campo4 |
| 1410293  |  s001  |    100 | 1000.00 | A1-0003|

------------------------------------------------------

Por lo que quiero es realizar lo siguiente:

Loop at ti_campos
  into wa_campos.
    REPLACE ALL OCCURRENCE OF wa_campos-campo 
       IN wa_campo-valor
       WITH wa_info-**campoX**
endloop.

La duda que me surge es, como puedo darle el valor a CampoX de modo que como tengo registrado en la ti_campos-campo el nombre de la columna que quiero reemplazar de la wa_info facilite la localización del valor.

Espero haber explicado bien y estar cuerdo y no haber imaginado algo imposible.

Saludos,
Alejandro.

Yo creo que es mejor que te crees un field symbol de ti_campos

Loop at ti_campos ASSIGNING <f_campos>.
    <f_campos>-valor-campo1 =  "valor que introduces" .
endloop.

te consumirá menos recursos que hacerlo con work area y creo q es mas sencillo.

Ya nos comentas, Saludos

2 Me gusta

Gracias Patati por tu apoyo,

Tengo duda, la parte que quiero hacer dinámica es específicamente donde has colocado campo1, en este punto tengo N cantidad de campos y lo que quiero es que en lugar de ir colocando campo1, campo2, campo3, campo4, colocar algo que de forma dinámica arme ese valor, teniendo en cuenta que en la tabla principal ya tengo el nombre del campo.

De antemano gracias!

Gracias a la respuesta de @Patati he encontrado la solución.

Utilizando Field Symbol lo he realizado así y funciona perfecto.

FIELD SYMBOLS: <fs_wa>   TYPE any.

Loop at ti_campos
 into wa_campos.
 CONCATENATE 'wa_info' wa_campos-campo INTO vc_variable.
 CONDENSE vc_variable NO-GAPS.
 ASSIGN (vc_variable) TO <fs_wa>.

   REPLACE ALL OCCURRENCE OF wa_campos-campo 
      IN wa_campo-valor
      WITH <fs_wa>.
endloop.

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.