Assign SELECT führen zu Feld Symbol
Frage
Ich bin verwirrt, warum der Kommentar gesetzt Abfrage funktioniert nicht.
REPORT z_hello_world_local.
TYPES: BEGIN OF bkpf_type,
xblnr TYPE bkpf-xblnr,
END OF bkpf_type.
DATA: t_bkpf TYPE TABLE OF bkpf_type.
FIELD-SYMBOLS: <bkpf> TYPE bkpf_type.
*This query does not work?
*SELECT xblnr
* INTO CORRESPONDING FIELDS OF <bkpf> UP TO 1 ROWS
* FROM bkpf
* WHERE belnr = '1800001017'.
* ENDSELECT.
*
DATA: t_xblnr TYPE bkpf-xblnr.
*This query works and in my head it is roughly the same thing.
SELECT SINGLE xblnr
INTO t_xblnr
FROM bkpf
WHERE belnr = '1800001017'.
write 'Done'.
Wenn ich den Kommentar gesetzt Abfrage ausführen ich den Fehler:
Laufzeitfehler GETWA_NOT_ASSIGNED Datum und Uhrzeit
2009.08.26 19.54.19Kurztext Feldsymbol ist noch nicht zugeordnet wurde.
Warum erhalte ich diesen Laufzeitfehler?
Lösung
Ich gehe davon aus (bezogen auf die Fehler und die Teile des Codes, dass ich nicht wirklich sehen kann), dass Sie versuchen, Daten auszuwählen, direkt in ein Feldsymbol. Sie können das nicht tun. Ein Feldsymbol ist kein Speicherbereich, ist es (im Wesentlichen) ein Zeiger.
Sie können eine der folgenden tun:
data: wa_bkpf type bkpf_type.
select xblnr
into corresponding fields of wa_bkpf
up to 1 rows
from bkpf
where xblnr = '1800001017'.
endselect.
oder
field-symbols: <bkpf> type bkpf_type.
append initial line to t_bkpf assigning <bkpf>.
select xlbnr
into corresponding fields <bkpf>
up to 1 rows
from bkpf
where xblnr = '1800001017'.
endselect.
In diesem Fall Sie zeigt das Feldsymbol auf eine neue Linie, dass Sie in der internen Tabelle hinzugefügt haben.
oder
select xblnr
into corresponding fields of table t_bkpf
from bkpf
where xlbnr = '1800001017'.
In diesem Fall wird abrufen Sie alle Dokumente, dass Spiel und Ort, um sie direkt in die interne Tabelle.