ABAP 7.40, WÄHLEN Sie .. BIS ZU n ZEILEN syntax Verwirrung

Update: die Frage, Die zurückgezogen werden sollte, ist die Grammatik korrekt ist. Offenbar bestimmt die SAP ABAP über eine Grammatik, die dann modifiziert durch zusätzliche Regeln in einfachem text. Ich habe diesen zweiten Teil.


Ich bin auf der Suche in der ABAP-schlüsselwortdokumentation 7.40, AUSWÄHLEN -> WÄHLEN Sie Zusätze. Für die Zugabe von BIS ZU n ZEILEN, es gibt das Beispiel

DATA: wa_scustom TYPE scustom.

SELECT *
       FROM scustom
       WHERE custtype = 'B'
       ORDER BY discount DESCENDING
       INTO @wa_scustom
       UP TO 3 ROWS.
ENDSELECT. 

Ich verifiziert, dass der code in ein SAP-7.40 system und habe den Fehler

Zeile 7: "IN" ist nicht gültig hier. '.' erwartet wird

Auf der anderen Seite, der folgende code wird akzeptiert, obwohl er nicht gedeckt ist durch die Grammatik WÄHLEN Sie in dem Dokument: BIS ZU n ZEILEN nach der VON.

SELECT COUNT(*) UP TO 1 ROWS
    FROM MARC
    WHERE matnr eq 100.

Als wir sind, ein tool zu schreiben, dass automatisch generiert ABAP code, es wäre nett zu wissen, was legal ist und was nicht. Gibt es eine "endgültige" Dokument? Im Allgemeinen lohnt es sich, die versuchen, einen Ansprechpartner bei SAP für Korrekturen? (Sie sehen, ich bin etwas Fremd in der SAP-Welt), Wenn ja, wer könnte das sein?

  • Ah, ich glaube, ich fand einige info in Bezug auf den zweiten code Stück: nach der ABAP-schlüsselwortdokumentation 7.31, wird der angegebene code ist legal. So, vielleicht SAP verändert die Grammatik, sondern lassen den parser schweigend hinnehmen, die alte Grammatik.
  • Es sieht aus wie die abap-compiler will die "bis" - Anweisung, bevor die where/group by/order by-Teil. Aber ich habe nicht gefunden, alle Unterlagen über diese Regeln.
  • Ja, es ist die übliche SAP-Politik. In der neuesten Dokumentation erzwingt Sie verwenden nur die neuesten syntax, jedoch legacy-syntax ist stets unterstützt.
Schreibe einen Kommentar