Returncodes für verschiedene OM-Operationen

Diese Seite beschreibt, welche OM-Returncodes von den verschiedenen Objektoperationen gesetzt werden.

Die hier beschriebenen Reaktionen gelten in jedem Fall für die Programmausführung im LAN. Unter MVS kann es, vor allem was die automatische Fehlerbehandlung über Conditions angeht, zu Abweichungen kommen, obwohl wir uns bemühen, dies zu vermeiden. Wenn Sie solche Abweichungen feststellen, bitten wir um Mitteilung, um diese nach Möglichkeit beseitigen zu können.

Um die Tabelle nicht unnötig aufzublähen, gilt, wenn nichts anderes angegeben ist:

OM-RC-OK Die gewünschte Operation wurde erfolgreich ausgeführt.
OM-RC-NOT-OK Die gewünschte Operation wurde wegen eines Fehlers abgebrochen; es wurde kein Ergebnis bereitgestellt. Typische Ursachen sind bei Objektoperationen: ungültiger Objekthandle; bei List-Objekten: gewünschter Satz konnte nicht gelesen werden, obwohl die Bedingungen für EOL nicht erfüllt sind. Je nach Operation sind andere Ursachen möglich, auf die her aber nicht weiter eingegangen wird. Eine Information über den aufgetretenen Fehler ist bei NOT-OK i.d.R. über die gesetzten Laufzeitzustände (Conditions) verfügbar.
EOL Wird nur bei List-Objekten gesetzt; Das Ende der Liste bzw. (beim Rückwärtslesen, Previous) der Anfang der Liste wurde erreicht; Das Objekt enthält nicht so viele Sätze, wie als Index angegeben ist (Index > Anzahl Sätze, Lesen hinter Listenende), oder Index = 0 (Lesen vor Listenanfang).

In der nachfolgenden Tabelle sind Zusatzinformationen zu den Returncodes in der dem Returncode entsprechenden Farbe unterlegt.

Die Operationen sind in alphabetischer Reihenfolge aufgeführt.

OM-Operation liefert OM-RC-… Zusatzinformationen
ADD NOT-OK OK EOL Aus Gründen der Kompatibilität bleibt der Returncode EOL, obwohl der Satz nicht hinzugefügt werden kann. Es wird aber eine „Severe“-Condition gesetzt, aufgrund derer bei automatischer Fehlerbehandlung (s. unten) reagiert wird wie bei NOT-OK. S. auch Registry-Setting CblVerifyAddPosition
ADDLIST NOT-OK OK EOL Aus Gründen der Kompatibilität bleibt der Returncode EOL, obwohl die Sätze nicht hinzugefügt werden können. Es wird aber eine „Severe“-Condition gesetzt, aufgrund derer bei automatischer Fehlerbehandlung (s. unten) reagiert wird wie bei NOT-OK.
CHECK NOT-OK OK EOL NOT-OK wird auch gesetzt, wenn die Prüfung ergibt, dass der Satzinhalt nicht den Regeln entspricht. Da die in den Prüfroutinen gesetzten Conditions i.d.R. nicht >= „Severe“ sind, wird auch bei automatischer Fehlerbehandlung das Modul nicht abgebrochen, sondern dieser NOT-OK kann vom Programmierer behandelt werden.
COMPLETEREF NOT-OK OK OK wird auch gesetzt, wenn bei dem Zugriff kein Satz gelesen wurde (leere Schlüsseltabelle oder Schlüssel in Tabelle nicht gefunden).
CONVERT NOT-OK OK
COPY NOT-OK OK EOL Aus Gründen der Kompatibilität bleibt der Returncode EOL, obwohl der Satz nicht kopiert werden kann. Es wird aber eine „Severe“-Condition gesetzt, aufgrund derer bei automatischer Fehlerbehandlung (s. unten) reagiert wird wie bei NOT-OK.
COPYLIST NOT-OK OK
CREATE CURSOR NOT-OK OK (EOL) Wenn das Registry-Setting „AutoGetFirst“ eingeschaltet ist, erfolgt nach einem erfolgrechen Create Cursor ein GET FIRST; der gelieferte Returncode ist dann der des GET. Insofern kann also der Create Cursor auch EOL liefern.
DECLARE keiner (Durchführung im Rahmen des Register, daher keine RC-Abfrage möglich)
DECLARE CURSOR keiner (Durchführung im Rahmen des Register, daher keine RC-Abfrage möglich)
DELETE NOT-OK OK EOL Aus Gründen der Kompatibilität bleibt der Returncode EOL, obwohl der Satz nicht gelöscht werden kann. Es wird aber eine „Severe“-Condition gesetzt, aufgrund derer bei automatischer Fehlerbehandlung (s. unten) reagiert wird wie bei NOT-OK.
DELETELIST NOT-OK OK
DESTROY CURSOR OK Anweisung liefert immer OK. Wenn der Cursor in Benutzung ist, wrid er freigegeben. Ist er nicht in Benutzung, führt die Operation trotzdem nicht zum Fehler.
DUMP NOT-OK OK
GET NOT-OK OK EOL
GET BLOB s. GET Wenn der Zugriff auf den Satz selbst fehlerfrei ist, bleibt der Returncode OK, auch falls die Blob-Daten nicht ermittelt werden können (der Blobinhalt ist dann NULL). Bei Problemen mit dem Blob-Zugriff werden jedoch Conditions gesetzt, die je nach Serverity bei automatischer Fehlerbehandlung (s. unten) zu Verhalten wie bein NOT-OK führen können.
GET USING CURSOR s. GET
GET WHERE; GET WHERE USING CURSOR s. GET Es wurde in der angegebenen Suchrichtung kein Satz mehr gefunden, der der Where-Bedingung entspricht
GETINFO NOT-OK OK Hier wird bei NOT-OK eine Condition „Warning“ gesetzt, die bei automatischer Fehlerbehandlung nicht zum Modulabbruch führt.
INITIALIZE OK Anweisung liefert immer OK.
INSERT s. ADD
INSERTLIST s. ADDLIST
NEW NOT-OK OK
PUT NOT-OK OK EOL Aus Gründen der Kompatibilität bleibt der Returncode hier EOL, aber es wird eine „Severe“-Condition gesetzt, aufgrund derer bei automatischer Fehlerbehandlung (s. unten) reagiert wird wie bei NOT-OK.
PUT BLOB s. PUT
RESETCONTENTS NOT-OK OK
SORT NOT-OK OK

Wenn die automatisierte Behandlung von durch die Infrastruktur gesetzten Conditions eingeschaltet ist, wird das Modul bei schweren Fehlern automatisch beendet, sodass im Programm keine Reaktion auf den Returncode NOT-OK mehr ausprogrammiert werden muss.