Ansicht
Dokumentation

ABENALTERNATIVE_LANGU_GUIDL - ALTERNATIVE LANGU GUIDL

ABENALTERNATIVE_LANGU_GUIDL - ALTERNATIVE LANGU GUIDL

RFUMSV00 - Advance Return for Tax on Sales/Purchases   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Alternative Sprachkonstrukte

Mit alternativen Sprachkonstrukten bezeichnen wir Teile von Anweisungen, die unterschiedlich geschrieben werden können. Ein Grund dafür liegt in der ständigen Weiterentwicklung der Sprache, bei der oft neue Schreibweisen eingeführt werden, die vorherigen Schreibweisen aus Gründen der Abwärtskompatibilität aber nicht verboten werden können.

Eindeutige Schreibweise verwenden

Gibt es verschiedene Schreibweisen für eine Anweisung, entscheiden Sie sich für eine durchgehende Schreibweise, und halten Sie diese konsequent innerhalb einer Entwicklung durch. Dabei wird die Schreibweise empfohlen, welche die Semantik der Anweisung am eindeutigsten wiedergibt.

Zur Unterstützung der Lesbarkeit sollte bei mehreren möglichen alternativen Schreibweisen stets die gewählt werden, die am eindeutigsten und am leichtesten lesbar ist und die, falls möglich, mit der Schreibweise bei anderen Anweisungen übereinstimmt. Beispiele hierfür sind die folgenden:

  • Bezüglich der Auswahl von Vergleichsoperatoren (= oder EQ, > oder GT, oder LT, >= oder GE, = oder LE) empfehlen wir, entweder nur die eine oder nur die andere Sorte von Operatoren im Kontext eines Programms zu verwenden. Die Variante mit den Zeichen =, und > kann als moderner angesehen werden, trägt aber auch zur Überladung dieser Zeichen bei. Die Vergleichsoperatoren aus zwei Buchstaben passen dagegen besser zu anderen Vergleichsoperatoren wie CO, CN etc., zu denen es keine alternativen Formen gibt.
  • Der Zusatz NOT der Vergleichsoperatoren BETWEEN, IN, IS ASSIGNED, IS BOUND, IS INSTANCE OF, IS INITIAL und IS SUPPLIED ist dem gleichlautenden Booleschen Operator NOT vorzuziehen, da so die Lesbarkeit steigt. Beispielsweise ist ein Ausdruck der Form a IS NOT INITIAL leichter zu verstehen als der logisch gleichwertige Ausdruck NOT a IS INITIAL. Dies entspricht dem Vorgehen bei Vergleichsausdrücken, die intuitiv in der Form a <> b ausgedrückt werden und nicht als NOT a = b.
  • Der Zusatz LENGTH len zu den deklarativen Anweisungen DATA und TYPES ist der Längenangabe in Klammern der Form (len) vorzuziehen. Dann stimmt die Schreibweise mit der bei CREATE DATA ... LENGTH überein. Darüber hinaus kann die geklammerte Form leicht mit dynamischen Token-Angaben verwechselt werden und sollte, wo immer möglich, diesen vorbehalten sein.
  • Der optionale Zusatz SUBSTRING der Anweisungen FIND und REPLACE kann verwendet werden, um eine klarere Unterscheidung vom alternativen Zusatz PCRE$|REGEX zu erreichen.
  • In sind kommaseparierte Listen den Listen ohne Kommata vorzuziehen. Kommaseparierte sind Voraussetzung für die Verwendung von Ausdrücken in den Listen. Weiterhin sollten Hostvariablen immer durch das Fluchtsymbol @ gekennzeichnet werden.
  • Innerhalb der Parameterliste der Anweisungen EXPORT und IMPORT ist das Gleichheitszeichen (=) den Zusätzen FROM bzw. TO vorzuziehen. Dann stimmt die Schreibweise mit der von Parameterlisten bei anderen Aufrufen wie von Methoden, Funktionsbausteinen und Transformationen überein.
  • Statt des Zusatzes LENGTH zur Anweisung READ DATASET soll stets der gleichbedeutende Zusatz ACTUAL LENGTH verwendet werden. Dadurch ist die Unterscheidung vom ähnlich lautenden Zusatz MAXIMUM LENGTH klarer. Die letzten beiden Beispiele sind typisch für Erweiterungen der Sprache um neue Zusätze, bei der die alte Schreibweise aus Gründen der Abwärtskompatibilität sozusagen als Kurzform beibehalten werden muss.

Folgender Quelltext zeigt eine uneinheitliche Verwendung der Anweisung FIND innerhalb eines Programms. Die erste und die dritte FIND-Anweisung sind alternative Schreibweisen mit der gleichen Bedeutung.

DATA text TYPE string.
...
FIND '...' IN text.
...
FIND PCRE '...' IN text.
...
FIND SUBSTRING '...' IN text.
...

Folgender Quelltext zeigt die gleichen Anweisungen wie obiges Beispiel in einheitlicher Schreibweise, wobei der semantische Unterschied zwischen der Suche nach einer Unterfolge und nach einem regulären Ausdruck syntaktisch klar ausgedrückt wird.

DATA text TYPE string.
...
FIND SUBSTRING '...' IN text.
...
FIND PCRE '...' IN text.
...
FIND SUBSTRING '...' IN text.
...






RFUMSV00 - Advance Return for Tax on Sales/Purchases   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5482 Date: 20240523 Time: 175124     sap01-206 ( 102 ms )