¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Conversión de declaración ABAP con SELECT INTO TABLE a estructura personalizada: Guía y ejemplos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 138 Vistas
0
Cargando...

Hi,

¿Existe la posibilidad de convertir algo como esto:

TYPES: BEGIN OF r_mystruct,
  field1(10),
  field2(20),
  field3(30),
  field4(40),
  field5,
  field6(5)
       END OF r_mystruct.

  DATA:
    tab TYPE STANDARD TABLE OF r_mystruct WITH HEADER LINE.

  MOVE sy-index TO tab-field5.
  SELECT aufnr gsber ktext FROM aufk INTO CORRESPONDING FIELDS OF aufk.
    MOVE aufk-aufnr TO tab-myfield1.
    MOVE aufk-aufnr TO tab-myfield2.
    MOVE aufk-ktext TO tab-myfield3.
    MOVE aufk-gsber TO tab-myfield4.
    APPEND tab.
  ENDSELECT.

a una declaración que involucre un SELECT INTO TABLE?

He intentado algo como esto:

SELECT aufnr aufnr ktext gsber ( sy-index ) NULL FROM aufk INTO TABLE tab.

pero obtengo numerosos errores (y sí, necesito tener aufnr dos veces)

¿Alguna pista sobre cómo transferir campos seleccionados a una estructura completamente personalizada, es posible?

Gracias de antemano,

Bart

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola, declaro el tipo como....

TIPOS: BEGIN OF r_mystruct,

field1(10),

aufnr tipo aufk-aufnr,

ktext tipo aufk-ktext ,

gsber tipo aufk-gsber,

field5,

field6(5)

END OF r_mystruct.

DATA: tab TIPO TABLE OF r_mystruct CON LÍNEA DE CABECERA.

SELECT * INTO CAMPOS CORRESPONDIENTES DE LA TABLA tab

DE aufk.

La consulta select anterior recuperará los campos aufnr, ktext y gsber...

para el resto de los campos...use el siguiente bucle..después de la instrucción select...

loop en itab.

itab-field1 = itab-aufnr.

itab-field5 = sy-index.

itab-field6 = ''.

agregar itab.

endloop.

recompensa si es útil...

Editado por: Rudra Prasanna Mohapatra el 2 de julio de 2008 a las 8:37 AM

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sí, lo tengo.

El problema es que no quiero seleccionar datos en una tabla con exactamente los mismos campos que la tabla de origen (aquí AUFK).

Necesito crear una estructura personalizada que sea común para muchas selecciones de diferentes tablas .

En la selección presentada, AUFNR de la tabla AUFK se coloca en el campo1.

Tengo más selecciones, por ejemplo de PRPS donde PSPNR va al campo1.

Por lo tanto, estoy interesado en optimizar la selección convirtiendo el SELECT - MOVE - ENDSELECT en un SELECT INTO TABLE, pero una vez más no en una tabla de AUFK o PRPS, sino en mi tabla personalizada que consiste en un conjunto de filas personalizadas (tipo r_myrecord, con campos campo1, campo2 .. ).

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Bart,

¿Alguna vez has oído hablar del buffer de tabla?

simplemente defina en la declaración de tablas:

tablas: aufk.

eliminar en el campo correspondiente.

Amit.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Tenía otro ejemplo. Puedo ver el 60% en el ejemplo anterior.

Pero prueba esta pequeña modificación del ejemplo:


  data : gt_bkpf like bkpf occurs 0,
         gs_bkpf like bkpf.

    select *
           into gs_bkpf
           from bkpf
           up to 100000 rows.

No tengo acceso a un sistema con tablas BKPF tan grandes, veo... menos del 10% de diferencia, aquí.

¿Cuál es la realidad?

Siegfried

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?