Moin,
ich habe eine einfache Konstante definiert. Vorweg: Es lässt sich nur mit Konstanten an dieser Stelle arbeiten.
CONSTANTS GC_V_LFA1 TYPE string VALUE
`EXISTS ( `
& `SELECT * `
& `FROM z_tab AS z `
& `WHERE lifnr = z~lifnr `
& `AND ktokk IN r_ktokk `
& `)`
.
In der Z Tabelle stehen Lieferantennummern. In der Range stehen Kontengruppen für Lieferanten.
Wenn ich jetzt das folgende SQL Statement ausführe, erhalte ich den besagten Dump.
SELECT *
FROM lfa1
INTO TABLE lt_lfa1
WHERE (GC_V_LFA1).
Die interne Tabelle lt_lfa1 besitzt eine identische Struktur zur lfa1. Der Einfachheit halber sagen wir, es sei eine Standardtabelle ohne Primärschlüssel.
Beim Ausführen kommt dann "Das Zeichen "K" ist hier nicht erlaubt. Ggf. fehlt ein Leerzeichen oder es ist eines zu viel." Im Debugger habe ich mir den Konstanteninhalt schon angesehen, das passt, soll heißen, der String ist komplett und ohne unerwartete Leerzeichen. Die SAP-Basiskomponente ist SAP_BASIS 756 0001 SAPK-75601INSAPBASIS.
Hat jemand eine Idee? Wenn weitere Informationen notwendig sind, bitte melden.
CONSTANTS GC_V_LFA1 TYPE string VALUE
`s_tab~ktokk IN r_ktokk`
& ` AND EXISTS (`
& ` SELECT *`
& ` FROM z_tab`
& ` WHERE lifnr EQ s_tab~lifnr )`.
SELECT *
FROM lfa1 AS s_tab
INTO TABLE lt_lfa1
WHERE (GC_V_LFA1).
Die Spalte KTOKK bezieht sich ja auf die Tabelle LFA1 und die Übergabe an einen Subselect sollte über einen Alias erfolgen damit man die Zusammenhänge besser lesen kann.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.