MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Simular un ciclo For. (foro/showthread.php?t=77560)

Edber 10/10/17 17:42:35

Simular un ciclo For.
 
Buen día a todos, tengo la necesidad de simular un ciclo for en donde podías obtener el valor de un campo en una posición [i] de acuerdo a la iteración en la que iba para evitar esto:

WHEN '0001'.
MOVE IT_FILE-VALUE TO TBU_UPLOAD-BU.
WHEN '0002'.
MOVE IT_FILE-VALUE TO TBU_UPLOAD-BU_DESC.
WHEN '0003'.
...

(Dónde se harían muchas condiciones When)

El punto es poder optimizar código e iterar digamos un campo ROW[i] en la posición i dentro de un loop para evitar tantas condiciones, y también dentro de la condición cambiaría el valor de un campo, siguiendo el ejemplo sería TBU_UPLOAD-(Campo en posición i). Apreciaría mucho su ayuda, no se si sea posible hacerlo en ABAP pero tengo entendido que un field-symbol ayudaría aunque no he logrado hacerlo.

Gracias de antemano y saludos!

vic3 16/10/17 10:52:21

No sé si he entendido bien lo que quieres hacer pero creo que tanto en un for como en tu loop, el bloque de instrucciones (condiciones) va a ser igual de extenso. Vas leyendo la tabla campo a campo y le pones una serie de condiciones (y esas no van a cambiar)
Un saludo

vanesamacri 16/10/17 14:01:23


Si a los campos destinos de la estructura TBU_UPLOAD los renombrás de manera similar a los valores que evaluás en cada WHEN (por ejemplo, en vez de BU_DESC, ponerle CAMPO_0002), podrías hacer una asignación dinámica por puntero y así te evitarías las asignaciones manuales de cada valor/ campo.

En caso de que no puedas / quieras hacer el renombrado de los campos de la estructura TBU_UPLOAD, podrías previamente definir en una tabla la relación entre el campo origen y destino, y luego dentro del código hacer esa asignación también mediante punteros al recorrer la tabla interna principal.

Edber 16/10/17 23:37:03

Gracias por las respuestas, efectivamente, lo que buscaba era la forma de asignar "dinámicamente" los valores para evitar asignar manualmente cada uno de ellos. :)


Husos Horarios son GMT. La hora en este momento es 21:34:17.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web