ACHTUNG, CROSSPOST!
Ich werde in das entsprechende Forum nicht direkt verlinken. Wer die Domain des bösen Bruder's kennt, der füge ihr folgendes hinzu:
Hallo Leute,
ich habe im Moment einen Gedankenhänger - es wäre genial, wenn ihr da weiterhelfen könntet.
Copy n Paste Lösungen sind gern gesehen, habe schon viel zu viel Zeit dafür verschwendet *gg*
Ich benötige einen Regexp für folgenden Fall:
Geparsed wird ABAP-Quellcode. Gesucht werden SELECT-Anweisungen, bei denen in der WHERE (oder in der JOIN-Bedingung, oder in beidem) nur 2 der folgenden 3 Felder versorgt werden:
"vtweg", "spart" und "vkorg".
Hier ein Teststring, mit dem das ganze wahrscheinlich leichter nachzuvollziehen ist.
Spoiler anzeigen
" Folgender Block soll gefunden werden, da "vtweg" weder in der WHERE Bedingung, noch in der JOIN Bedingung angegeben ist. (und "vkorg" auch nicht ;))
SELECT vkorg FROM vkorgs INTO TABLE gt_zieltab
WHERE spart IN so_sparten.
" Folgender Block soll NICHT gefunden werden, da alle 3 Felder versorgt.
SELECT * FROM
woherauchimmer
INNER JOIN andere_tabelle
ON andere_tabelle~vkorg = woherauchimmer~vkorg
INTO gs_zielbereich
WHERE spart = '14'
AND vtweg = p_weg.
" Folgender Block soll gefunden werden, da "spart" weder in der WHERE Bedingung, noch in der JOIN Bedingung angegeben ist.
SELECT kunnr FROM woherauchimmer LEFT OUTER JOIN andere_tabelle
ON andere_tabelle~vkorg = woherauchimmer~vkorg
INTO gs_zielbereich
WHERE vtweg = '123'.
Alles anzeigen
Vllt noch hilfreiche Infos: Es können sonst auch beliebige Felder abgefragt / versorgt werden. Die Felder müssen nicht direkt aufeinander folgen. Die Reihenfolge der Felder ist beliebig.
ABAP Anweisungen werden außerdem mit einem Punkt abgeschlossen (Ähnlich wie in z.B. PHP mit einem Semikolon)
Bin um jede Hilfe dankbar!
Gruß Seubo