¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como transformar uma declaração SELECT INTO TABLE em ABAP - Guia passo a passo

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

Olá,

Existe a possibilidade de converter algo como isto:

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 envolvendo um SELECT INTO TABLE?

Tenho tentado algo como isto:

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

Mas tenho recebido vários erros (e sim, preciso ter aufnr duas vezes)

Alguma dica sobre como transferir campos selecionados para uma estrutura completamente 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: INÍCIO DE r_mystruct,

field1(10),

aufnr tipo aufk-aufnr,

ktext tipo aufk-ktext ,

gsber tipo aufk-gsber,

field5,

field6(5)

FIM DE r_mystruct.

DATA: tab TIPO TABELA PADRÃO DE r_mystruct COM LINHA DE CABEÇALHO.

SELECIONAR * ENTRAR CAMPOS DE CORRESPONDÊNCIA DA TABELA tab

DE aufk.

A consulta de seleção acima obterá os campos aufnr, ktext e gsber...

para o restante dos campos... use o loop a seguir..após a declaração de seleção...

loop em itab.

itab-field1 = itab-aufnr.

itab-field5 = sy-index.

itab-field6 = ''.

adicionar itab.

fim loop.

recompensa 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 tenho.

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

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

Na seleção apresentada, AUFNR da tabela AUFK vai para o 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 de 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,

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

Simplemente define 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...

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?