¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Conversão de declaração ABAP com SELECT INTO TABLE para estrutura personalizada: Guia e exemplos

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

Olá,

Existe a possibilidade de converter algo assim:

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.

para uma declaração que envolva um SELECT INTO TABLE?

Eu tentei algo assim:

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

mas estou recebendo vários erros (e sim, preciso ter aufnr duas vezes)

Alguma dica sobre como transferir campos selecionados para uma estrutura totalmente personalizada, é possível?

Obrigado antecipadamente,

Bart

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

4 Respuestas

0
Cargando...

Olá, declaro o 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 COM HEADER LINE.

SELECT * INTO CORRESPONDING FIELDS OF TABLE tab

FROM aufk.

A consulta select acima recuperará os campos aufnr, ktext e gsber...

para o restante dos campos...use o seguinte loop..após a instrução select...

loop em itab.

itab-field1 = itab-aufnr.

itab-field5 = sy-index.

itab-field6 = ''.

adicionar itab.

endloop.

recompense se for útil...

Editado por: Rudra Prasanna Mohapatra em 2 de julho de 2008 às 8:37 AM

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

Sim, eu entendi.

O problema é que não quero selecionar dados em uma tabela com exatamente os mesmos campos que a tabela de origem (aqui AUFK).

Preciso criar uma estrutura personalizada que seja comum para muitas seleções de diferentes tabelas .

Na seleção apresentada, AUFNR da tabela AUFK é colocada no campo1.

Tenho mais seleções, por exemplo, de PRPS onde PSPNR vai para o campo1.

Portanto, estou interessado em otimizar a seleção convertendo o SELECT - MOVE - ENDSELECT em um SELECT INTO TABLE, mas mais uma vez não em uma tabela AUFK ou PRPS, mas sim em minha tabela personalizada que consiste em um conjunto de linhas personalizadas (tipo r_myrecord, com campos campo1, campo2 .. ).

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

Bart,

Já ouviu falar do buffer de tabela?

Basta definir na declaração de tabelas:

tabelas: aufk.

Excluir no campo correspondente.

Amit.

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

Tinha outro exemplo. Consigo ver 60% no exemplo anterior.

Mas experimente esta pequena modificação no exemplo:


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

    select *
           into gs_bkpf
           from bkpf
           up to 100000 rows.

Não tenho acesso a um sistema com tabelas BKPF tão grandes, vejo... menos de 10% de diferença aqui.

Qual é a realidade?

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?