Lesen itab mit dynamischen Schlüssel-Spezifikationen

Ich versuche, herauszufinden, einen Weg, um Lesen einer internen Tabelle muss dynamisch erstellt werden. Ich habe das folgenden report füllt eine dynamische interne Tabelle mit Daten. In der letzten Zeile versuche ich zu Lesen, es mit einem Schlüssel (mandt zum Beispiel). Das problem ist, dass ich die Fehlermeldung "den angegebenen Typ hat keine Struktur und daher auch keine Komponente namens MANDT".

Habe ich ausgetestet, und ich kann sehen, dass wurde erfolgreich aufgefüllt und die Struktur der Tabelle (Feldnamen) sind korrekt. Das problem stellt sich, wenn ich versuche zu Lesen, die Tabelle in einen Arbeitsbereich. Vielleicht im tun, das falsch, aber es scheint wie etwas, das sollte möglich sein, todo, und ich habe das Gefühl, Im fehlt etwas klein.

Der Grund, warum ich versuche dies heraus, dass ich gefunden habe, identisch wählt, passiert in einem Programm und möchten Puffer-Datensätze in den Speicher und Lesen Sie von dort aus zu vermeiden, die DB zugreift. Dies ist einfach zu implementieren, jedoch habe ich nicht getan, wenn die Tabelle where - Klausel und into - Klausel von OPEN SQL-Anweisung, die ich versuche zu optimieren Sie sind dynamisch.

Cheers.

DATA: t681_rep TYPE TABLE OF t681 , wa_681 LIKE LINE OF t681_rep,
      tabref TYPE REF TO data , waref TYPE REF TO data.

FIELD-SYMBOLS: <any_tab> TYPE ANY TABLE,
               <any_wa> TYPE ANY,
               <var1> TYPE ANY.
"fill t681_rep
SELECT *
  FROM t681
  INTO TABLE t681_rep
   UP TO 1 ROWS WHERE kotab = 'A002'.

READ TABLE t681_rep INTO wa_681 WITH KEY kotab = 'A002'.
IF sy-subrc = 0.

  "if A002 is found create a table of that type and fill it
  CREATE DATA tabref TYPE TABLE OF (wa_681-kotab).
  ASSIGN tabref->* TO <any_tab>.
  SELECT * UP TO 10 ROWS
    FROM (wa_681-kotab)
    INTO TABLE <any_tab>.

ENDIF.

CREATE DATA waref TYPE a002.
ASSIGN waref->* TO <any_wa>.

READ TABLE <any_tab> ASSIGNING <any_wa> WITH KEY mandt = '800'. <- problem area
IF sy-subrc = 0.
  "do stuff with <any_wa>...
ENDIF.

InformationsquelleAutor B. Bowles | 2012-05-29

Schreibe einen Kommentar