Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Rückgabe-Elemente

&pagelevel(5)&pagelevel

Ein Rückgabe-Element muss in einer rufenden Anweisung dann spezifiziert sein, wenn ein Rückgabe-Element in der Procedure Division Überschrift der gerufenen Quelleinheit definiert ist.

Ist einer der Operanden eine stark typisierte Datengruppe, so müssen beide vom gleichen Typ sein.

Eine nationale Gruppe wird immer wie ein Datenelement behandelt.

Gruppenelemente

Ist einer der Operanden ein Gruppenelement, so muss das entsprechende Element ein Gruppenelement oder ein alphanumerisches Datenelement und gleich lang sein.

Datenelemente

Ist einer der Operanden eine Objektreferenz, muss das entsprechende Element auch eine Objektreferenz sein und es gelten dann folgende Regeln:

  1. Ist im Rückgabe-Element der gerufenen Quelleinheit keine ACTIVE-CLASS Angabe spezifiziert, dann muss im gerufenen Laufzeit-Element eine SET-Anweisung zulässig sein, mit dem Rückgabe-Element in der gerufenen Quelleinheit als Sendefeld und dem entsprechenden Rückgabe-Element in der rufenden Quelleinheit als Empfangsfeld.

  2. Ist im Rückgabe-Element der gerufenen Quelleinheit eine ACTIVE-CLASS Angabe vorhanden, dann muss im rufenden Laufzeit-Element eine SET-Anweisung zulässig sein, mit dem Rückgabe-Element in der rufenden Quelleinheit als Empfangsfeld und einem Sendefeld, das nach folgenden Regeln mit einer USAGE OBJECT REFERENCE Angabe spezifiziert ist:

    1. Wird eine Methode mit einem Klassennamen aufgerufen, muss das Sendefeld mit dem gleichen Klassennamen und einer ONLY-Angabe spezifiziert sein.

    2. Wird eine Methode mit der vordefinierten Objektreferenz SELF oder SUPER aufgerufen, muss das Sendefeld mit der ACTIVE-CLASS Angabe spezifiziert sein.

    3. Wird eine Methode mit einer Objektreferenz aufgerufen, die mit einem Interfacenamen beschrieben ist, muss das Sendefeld eine universelle Objektreferenz sein.

    4. Wird eine Methode mit einer anderen Objektreferenz, als die vorher genannten, aufgerufen, so wird diese als Sendefeld verwendet, einschließlich einer eventuell vorhandenen ONLY-Angabe.

    5. Genügt das Sendefeld einer der aufgeführten Regeln und ist es mit einem Klassennamen oder ACTIVE-CLASS beschrieben, so muss das Vorhandensein oder Fehlen der FACTORY-Angabe dem im Rückgabe-Element der gerufenen Quelleinheit entsprechen.

    6. Sind die Operanden keine Objektreferenzen, dann gilt das unter b), für ’BY REFERENCE übergebene Datenelemente’, gesagte.

    Ist weder das formale noch das aktuelle Rückgabeelement von der Klasse objekt, dann müssen beide Operanden die gleiche PICTURE, USAGE, SIGN, JUSTIFIED und BLANK WHEN ZERO Klauseln haben, mit folgenden zusätzlichen Bedingungen:
    • kommt in der Picture Klausel ein Dezimalpunkt vor, dann muss für die rufende und die gerufene Quelleinheit die gleiche DECIMAL-POINT IS COMMA Klausel gelten

    • hat das formale Rückgabeelement die SYNCHRONIZED Angabe, dann muss sie das aktuelle Rückgabeelement auch haben oder auf Stufe 01 definiert sein.

    • Wenn das formale Rückgabeelement mit der ANY LENGTH-Klausel definiert ist, wird als seine Länge die Länge des aktuellen Rückgabeelements angenommen.

    • Wenn das aktuelle Rückgabeelement mit der ANY LENGTH-Klausel definiert ist, muss das zugehörige formale Rückgabeelement ebenfalls mit der ANY LENGTH-Klausel definiert sein.

    • Wenn einer der beiden Operanden ein typbezogener Zeiger ist, müssen beide typbezogene Zeiger und vom gleichen Typ sein.