#1
|
|||
|
|||
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! Úlima edición por Edber fecha: 10/10/17 a las 21:33:19. |
#2
|
||||
|
||||
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
__________________
Consultor técnico SAP |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
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.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|