HANA und for all entries

Alles über die SAPs In-Memory Datenbank HANA
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

HANA und for all entries

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo Zusammen,

ist unter HANA der for all entries mit leerer entry Tabelle nicht mehr erlaubt, bzw. gibt es da generell Probleme?
Bei leerer Entry-Tabelle liefert der zweite SELECT in die sortierte Tabelle auch alle anderen Sprachen.
Kann jemand von euch das mal testen auf einer HANA Umgebung?

Grüße
Frank

Code: Alles auswählen.

REPORT zcheck_for_all_entries.
TABLES:
  mara.

SELECT-OPTIONS:
  s_matnr FOR mara-matnr.

TYPES:
  BEGIN OF ty_makt_s,
    matnr TYPE matnr,
    spras TYPE spras,
    maktx TYPE maktx,
  END   OF ty_makt_s.

DATA: gt_makt     TYPE STANDARD TABLE OF ty_makt_s.
DATA: gt_makt_srt TYPE SORTED   TABLE OF ty_makt_s WITH UNIQUE KEY matnr spras.

START-OF-SELECTION.

  SELECT matnr maktx FROM makt
    INTO CORRESPONDING FIELDS OF TABLE gt_makt
    FOR ALL ENTRIES IN s_matnr
    WHERE matnr = s_matnr-low
    AND   spras = sy-langu.

  LOOP AT gt_makt_srt ASSIGNING FIELD-SYMBOL(<makt>)
    WHERE spras <> sy-langu.
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    WRITE: / <makt>-matnr, <makt>-spras.
  ENDIF.

  SELECT matnr spras maktx FROM makt
    INTO CORRESPONDING FIELDS OF TABLE gt_makt_srt
    FOR ALL ENTRIES IN s_matnr
    WHERE matnr = s_matnr-low
    AND   spras = sy-langu
    ORDER BY PRIMARY KEY.

  LOOP AT gt_makt_srt ASSIGNING FIELD-SYMBOL(<makt_srt>)
    WHERE spras <> sy-langu.
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    WRITE: / <makt_srt>-matnr, <makt_srt>-spras.
  ENDIF.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: HANA und for all entries

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hallo,

Bei mir wird gar nichts ausgegeben. Im ersten Select wird das Feld SPRAS nicht gefüllt und beim 2. Select ist das Feld SPRAS nicht ungleich SY-LANGU. In beiden Selects wird jeweils nur ein Eintrag gefunden.

Viele Grüße, Tapio

Folgende Benutzer bedankten sich beim Autor erp-bt für den Beitrag:
ST22

...entwickelnder Berater...beratender Entwickler

Re: HANA und for all entries

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hi,
stimmt, den ersten SELECT kann man noch um SPRAS erweitern.
Und der erste LOOP war auch um die falsche Itab, sorry.

Code: Alles auswählen.

REPORT zcheck_for_all_entries.
TABLES:
  mara.

SELECT-OPTIONS:
  s_matnr FOR mara-matnr.

TYPES:
  BEGIN OF ty_makt_s,
    matnr TYPE matnr,
    spras TYPE spras,
    maktx TYPE maktx,
  END   OF ty_makt_s.

DATA: gt_makt     TYPE STANDARD TABLE OF ty_makt_s.
DATA: gt_makt_srt TYPE SORTED   TABLE OF ty_makt_s WITH UNIQUE KEY matnr spras.

START-OF-SELECTION.

  SELECT matnr spras maktx FROM makt
    INTO CORRESPONDING FIELDS OF TABLE gt_makt
    FOR ALL ENTRIES IN s_matnr
    WHERE matnr = s_matnr-low
    AND   spras = sy-langu.

  LOOP AT gt_makt ASSIGNING FIELD-SYMBOL(<makt>)
    WHERE spras <> sy-langu.
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    WRITE: / <makt>-matnr, <makt>-spras.
  ENDIF.

* this select statement reads other languages also !?!
  SELECT matnr spras maktx FROM makt
    INTO CORRESPONDING FIELDS OF TABLE gt_makt_srt
    FOR ALL ENTRIES IN s_matnr
    WHERE matnr = s_matnr-low
    AND   spras = sy-langu
    ORDER BY PRIMARY KEY.

  LOOP AT gt_makt_srt ASSIGNING FIELD-SYMBOL(<makt_srt>)
    WHERE spras <> sy-langu.
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    WRITE: / <makt_srt>-matnr, <makt_srt>-spras.
  ENDIF.
Das eigentliche Problem ist, dass bei leerer Entrytabelle auch alle anderen Sprachen mit selektiert werden.

Scheint ein bug zu sein, oder habe ich was übersehen?

Grüße
Frank

Re: HANA und for all entries

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
das ist lt. Beschreibung von FOR ALL ENTRIES doch das "normale" Verhalten. Daher wird ja auch immer empfohlen, VOR der Verwendung von FAE zu prüfen, ob die Eingabetabelle auch Inhalte hat. Sonst werden halt eben alle Einträge gelesen.
Before using an internal table itab after FOR ALL ENTRIES, always check that the internal table is not initial. In an initial internal tables, all rows are read from the database regardless of any further conditions specified after WHERE. This is not usually the required behavior.

Folgende Benutzer bedankten sich beim Autor zzcpak für den Beitrag:
ST22


Re: HANA und for all entries

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
O.K. , das war der Fehler "regardless of any further conditions...".
Im Moment achten wir halt besonders auf HANA relevante Dinge, sind schon über ein paar "Order by" issues gestolpert, aber das hat jetzt damit gar nichts zu tun.

Grüße
Frank

Seite 1 von 1

Vergleichbare Themen

3
Antw.
3661
Views
HANA kennelernen, womit anfangen? ( nicht s4/hana )
von DenBas » 03.09.2019 14:17 • Verfasst in SAP HANA für Anfänger
6
Antw.
4076
Views
FOR ALL ENTRIES IN
von Bajdu » 21.08.2006 14:25 • Verfasst in ABAP® für Anfänger
1
Antw.
1480
Views
FOR ALL ENTRIES IN
von melisy » 02.04.2009 12:11 • Verfasst in ABAP® für Anfänger
1
Antw.
1599
Views
'Range und FOR ALL ENTRIES
von eschi78 » 08.11.2007 09:51 • Verfasst in ABAP® Core
23
Antw.
8696
Views
Alternative For All Entries
von L0w-RiDer » 11.02.2019 15:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 1 / 99
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1743
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8347