|
#1
|
|||
|
|||
Duda conceptual
Hola,
estoy dando mis primeros pasos con abap y se me planteo una duda... el codigo es el siguiente: TABLES: ztablatransparente. LOOP at ztablatranparente. write: / ztablatransparente-campo1, ztablatransparente-campo2. "el codigo de arriba es por poner algo. ENDLOOP. El tema es el siguiente yo cree en el diccionario abap una tabla transparente llamada ztablatransparente y con la sentencia TABLES me crea una estructura o área de trabajo (variable). Luego esta variable de encabezado o área de trabajo (objeto de dato) como quieran llamarlo me permite usarlo con el loop, yo creía que solamente con el loop se recorrían tablas internas??? alguien me podria aclarar porque puedo utilizar una variable de work area ahi!, muchas gracias. Saludos, Jorge. |
#2
|
||||
|
||||
la variable ztablatransparente que definiste con TABLES ztablatransparente, no es una tabla como bien decis y aunque te permita compilar el LOOP no vas a poder asignar mas de un registro a ztablatransparente.
Para eso defini ztablatransparente de la siguiente manera data ztablatransparente type standard table of ztablatransparente.
__________________
Sebastián Chiavia |
#3
|
|||
|
|||
hola
gracias por la respuesta...
yo no dije q habia creado una tabla con la instruccion tables, sino que cree una variable de estructura o work area. y ya se a que queres llegar, pero necesito otro tipo de respuesta porque me permite definir el loop asi con un work area. |
#4
|
|||
|
|||
hola
perdon mysmb2, leí mal la respuesta, igual no me responde mi pregunta.
igual muchas gracias. espero por mas respuestas... |
#5
|
|||
|
|||
loopear un work area
para que sirve loopear un work area?
|
#6
|
|||
|
|||
Bienvenido al mágico mundo del ABAP
No estas loopeando a una work area, lo que en realidad esta pasando es que estas usando una instrucción obsoleta que ha tenido que quedar como un vestigio para seguir manteniendo compatibilidad y confundir a los programadores. A diferencia del "loop at itab" que hace un loop a una tabla interna, lo que tu estas haciendo es un "loop at dbtab" osea, un loop a una tabla de base de datos Esa instrucción se usaba asi, primeramente, la work area que declaraste en tables se le introducían los campos que requirieras de la llave primaria. Por ejemplo, en la BKPF, podias solo llenar la sociedad. El loop at dbtab entonces se iria por todos los registros que tuvieran esa llave, por ejemplo, en el caso anterior, todos los documentos financieros de una sociedad Otra razon para dejar de usar la instruccion TABLES y solamente programar en ABAP Objects. Dime que pasa si escribo esto en ABAP procedural? Ahora dime que pasa si escribo esto con clases? |
Herramientas | Buscar en Tema |
Desplegado | |
|
|