Ansicht
Dokumentation
ABAPSORT_EXTRACT - SORT EXTRACT
ROGBILLS - Synchronize billing plans PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
SORT, Extrakt
SORT $[ASCENDING$|DESCENDING$]
$[AS TEXT$]
$[STABLE$]
$[sort_key$].
Zusätze:
1. ... ASCENDING$|DESCENDING
2. ... AS TEXT
3. ... STABLE
Wirkung
Diese Anweisung sortiert den Extraktdatenbestand des Programms. Voraussetzung für die Ausführung der Anweisung ist, dass die Feldgruppe header mit der Anweisung FIELD-GROUPS definiert und damit Bestandteil aller Feldgruppen ist. Falls kein expliziter Sortierschlüssel sort_key angegeben ist, wird der Extraktdatenbestand nach den Komponenten der Feldgruppe header sortiert. Numerische und byteartige Komponenten werden nach ihrem Wert und zeichenartige Komponenten standardmäßig nach ihrer binären Darstellung (Codepage) sortiert. Dabei werden aber Komponenten mit dem Inhalt hexadezimal 0 immer vor andere Einträge einsortiert. Eine textuelle Sortierung zeichenartiger Komponenten wird mit dem Zusatz AS TEXT erreicht.
Die Priorität der Sortierung richtet sich nach der Reihenfolge, in der die Komponenten mit INSERT in die Feldgruppe header eingefügt wurden.
Die Sortierung ist standardmäßig instabil, d.h. die relative Reihenfolge von Zeilen, die sich im Sortierschlüssel nicht unterscheidet, bleibt beim Sortieren nicht erhalten und kann bei mehrmaligem Sortieren unterschiedlich sein. Eine stabile Sortierung wird mit dem Zusatz STABLE erreicht.
Die Anweisung SORT schließt gleichzeitig den Aufbau des Extraktdatenbestands ab. Die Ausführung
der Anweisung EXTRACT nach Ausführung der Anweisung SORT führt zu einer unbehandelbaren Ausnahme.
Hinweise
- Die Anweisung SORT für den Extraktdatenbestand unterscheidet sich syntaktisch von der Anweisung SORT für interne Tabellen nur durch die fehlende Angabe einer internen Tabelle, darf aber nicht mit dieser verwechselt werden.
- Dass Komponenten mit dem Inhalt hexadezimal 0 immer vor andere Einträge einsortiert werden, kann beim Sortieren numerischer Datentypen zu überraschendem Verhalten führen.
- In globalen Klassen können keine Feldgruppen definiert und bearbeitet werden. In Methoden lokaler Klassen anderer Programme als Class-Pools ist die Anweisung SORT für dort global definierte Feldgruppen möglich.
- Extrakte sind obsolet. Stattdessen sollten interne Tabellen verwendet werden.
Zusatz 1
... ASCENDING$|DESCENDING
Wirkung
Mit dem Zusatz ASCENDING bzw. DESCENDING kann die Sortierrichtung explizit als aufsteigend
oder absteigend vorgegeben werden. Falls keiner der Zusätze angegeben ist, wird die aufsteigende
Sortierung vorgegeben. Die Sortierrichtung kann im expliziten Sortierschlüssel sort_key für einzelne Komponenten überschrieben werden.
Zusatz 2
... AS TEXT
Wirkung
Der Zusatz AS TEXT gibt vor, dass textartige Komponenten gemäß dem
Locale der aktuellen
Textumgebung sortiert werden. Falls AS TEXT nicht angegeben ist, werden textartige Komponenten
nach der Codierung in der Codepage der aktuellen Textumgebung sortiert. Mehr dazu finden Sie unter SORT für interne Tabellen.
Zusatz 3
... STABLE
Wirkung
Mit STABLE wird eine stabile Sortierung erreicht. Die relative Reihenfolge von Zeilen, die sich
im Sortierschlüssel nicht unterscheidet, bleibt beim Sortieren unverändert. Ohne den Zusatz
STABLE ist die Reihenfolge nicht stabil und mehrmaliges Sortieren des Extraktdatenbestands nach dem gleichen Sortierschlüssel kann bei jedem erneuten Sortieren die Reihenfolge ändern.
Ausnahmen
Unbehandelbare Ausnahmen
- Ursache: Ein Sortierfeld mit explizitem Zusatz AS TEXT ist nicht textartig.
Laufzeitfehler: SORT_AS_TEXT_EX_BAD_TYPE
- Ursache: Mehr als 50 Sortierkriterien.
Laufzeitfehler: SORT_EXTRACT_TOO_MANY_FIELDS
- Ursache: Ein Sortierkriterium ist nicht in der Feldgruppe HEADER enthalten.
Laufzeitfehler: SORT_FIELD_NOT_IN_HEADER
- Ursache: Die Feldgruppe HEADER ist nicht definiert.
Laufzeitfehler: SORT_NO_HEADER
- Ursache: Die Verwendung von SORT innerhalb einer Schleife über einen Extraktdatenbestand ist nicht möglich.
Laufzeitfehler: SORT_WITHIN_LOOP
- Ursache: Nicht genügend Speicherplatz vorhanden.
Laufzeitfehler: SORT_EXTRACT_INDEX_NO_ROLL
ABAP Short Reference Addresses (Business Address Services)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 7791 Date: 20240523 Time: 135324 sap01-206 ( 111 ms )