ABAP podstawy dla opornego :)

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
pabi
Posty: 171
Rejestracja: śr sty 25, 2012 2:25 pm
Has thanked: 31 times
Been thanked: 5 times

ABAP podstawy dla opornego :)

Post autor: pabi » pt lut 01, 2019 10:59 am

Witam

Abap dla opornych podstawy:)

Mam pytanie jak wyrzucać dane z kilku lub kilkunastu tabel bazodanowych do ALV ?
Załóżmy, że indeksy z jednej tabeli, ilości z innej, nazwę indeksu z innej itp.

Czy łączymy najpierw sql joinem i wynik do jednej tabeli wewnetrznej a potem do alv?
Czy też wrzucamy każdą tabelę bazodanową do oddzielnej tabeli wewnetrznej i następnie pracujemy już tylko na tabelach wewnetrznych zbierając w jednej zbiorczej tabeli wewnetrznej wynikowej ?

Przykład poniżej pobiera mi z jendej tabeli bazodanowej do jednej wewnetrznej czyli taki najprostszy tylko z ręcznie zrobionym field catalogiem..
REPORT ZPB4.

TYPE-POOLS: slis. " SLIS contains all the ALV data types

*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: it_sbook TYPE TABLE OF sbook.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*


*Fetch data from the database
SELECT * FROM sbook INTO TABLE it_sbook.

*Build field catalog
wa_fieldcat-fieldname = 'CARRID'. " Fieldname in the data table
wa_fieldcat-seltext_m = 'Linia lotnicza'. " Column description in the output
APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'CONNID'.
wa_fieldcat-seltext_m = 'Numer lotu'.
APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'FLDATE'.
wa_fieldcat-seltext_m = 'Data lotu'.
APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BOOKID'.
wa_fieldcat-seltext_m = 'Numer miejsca'.
APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'PASSNAME'.
wa_fieldcat-seltext_m = 'Dane pasażera'.
APPEND wa_fieldcat TO it_fieldcat.

*Pass data and field catalog to ALV function module to display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.

yacol
Posty: 497
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 6 times
Been thanked: 97 times
Kontakt:

Re: ABAP podstawy dla opornego :)

Post autor: yacol » pt lut 01, 2019 3:44 pm

Jak to zwykle w życiu bywa - to zależy :)

Generalnie z punktu widzenia wydajności dobrze napisany JOIN jest ok. Problem w tym, że nie zawsze można zastosować złączeń i wówczas trzeba kombinować na inne dostępne sposoby. Jednym z nich jest to co napisałeś w swoim wątku: siorbiemy dane z tabel BD do tabel wewnętrznych i poddajemy je "obróbce", w wyniku której powstanie jedna wynikowa tabela wewnętrzna zawierająca dane wyświetlane w liście ALV. Zawsze jednak musimy mieć "z tyłu głowy" zagadnienia związane z wydajnością, zapotrzebowaniem na pamięć, itd. Ze względu na to, że baza danych jest instancją centralną - dostęp do niej musi być tak optymalny jak to tylko możliwe.
Pozdrawiam,

Jacek Witczak
http://novertio.pl

pabi
Posty: 171
Rejestracja: śr sty 25, 2012 2:25 pm
Has thanked: 31 times
Been thanked: 5 times

Re: ABAP podstawy dla opornego :)

Post autor: pabi » pn lut 04, 2019 12:32 pm

dzięki

pietaszek
Posty: 8
Rejestracja: pt gru 09, 2016 12:04 pm
Has thanked: 1 time
Been thanked: 8 times

Re: ABAP podstawy dla opornego :)

Post autor: pietaszek » śr lut 27, 2019 7:31 am

Jeśli mogę coś podpowiedzieć to w Select wybierać tylko te kolumny, które potrzebujesz. Szarpanie tabeli z "*" to nie najlepszy pomysł. Przy większej tabeli to mocne nadwyrężenie zasobów.

dominik.tylczynski
Posty: 6993
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 989 times
Been thanked: 1021 times
Kontakt:

Re: ABAP podstawy dla opornego :)

Post autor: dominik.tylczynski » śr lut 27, 2019 8:14 am

pietaszek pisze:
śr lut 27, 2019 7:31 am
Jeśli mogę coś podpowiedzieć to w Select wybierać tylko te kolumny, które potrzebujesz. Szarpanie tabeli z "*" to nie najlepszy pomysł. Przy większej tabeli to mocne nadwyrężenie zasobów.
Cenna i słuszna uwaga.

karol.dabrowski
Posty: 180
Rejestracja: śr cze 11, 2014 3:10 pm
Has thanked: 50 times
Been thanked: 26 times

Re: ABAP podstawy dla opornego :)

Post autor: karol.dabrowski » śr lut 27, 2019 10:54 am

pietaszek pisze:
śr lut 27, 2019 7:31 am
Jeśli mogę coś podpowiedzieć to w Select wybierać tylko te kolumny, które potrzebujesz. Szarpanie tabeli z "*" to nie najlepszy pomysł. Przy większej tabeli to mocne nadwyrężenie zasobów.
Szczególnie z BSEG ;)

ODPOWIEDZ