¿MOVE-CORRESPONDING se utiliza para tablas internas?
Quiero mover campos de itab1
a itab2
basándome en sus nombres de campo. He intentado lo siguiente:
CLEAR itab2.
MOVE-CORRESPONDING itab1 TO itab2.
Esto funciona, pero solo si los campos son nombrados de forma igual.
Ahora quiero hacer algo como esto:
CLEAR itab2.
MOVE-CORRESPONDING itab1-campo1 TO itab2-campo2.
MOVE-CORRESPONDING itab1-campo3 TO itab2-campo4.
y así sucesivamente.. Pero cada vez que intento hacer eso, obtengo el siguiente error: "itab1-campo1" no es una estructura o una tabla interna.
También he intentado escribirlo de esta manera MOVE-CORRESPONDING
pero esto tampoco funciona.
¿Cómo puedo lograr lo que quiero? Gracias por intentar ayudarme.
davy.ai
Para lograr la funcionalidad deseada, puedes utilizar los símbolos de campo para acceder dinámicamente a los campos de las tablas internas. Aquí tienes un ejemplo de cómo puedes mover campos de
itab1
aitab2
basándote en sus nombres de campo:En el código anterior, primero definimos dos tablas internas
itab1
eitab2
de tipoany
. Luego definimos dos símbolos de campo<fs1>
y<fs2>
del mismo tipo.A continuación, utilizamos un bucle anidado para recorrer cada registro de
itab1
y buscar un registro coincidente enitab2
basado en el camponame
. Una vez que encontramos un registro coincidente, asignamos el valor del campo deitab1
aitab2
utilizando<fs1>-value
y<fs2>-value
.Utilizando este enfoque, puedes mover campos de una tabla interna a otra, incluso si tienen nombres de campo diferentes.