Prozedurparameter sind im BS2000 Parameter, die beim Aufruf einer Prozedur vom Aufrufer an die Prozedur übergeben werden. Sie dienen dazu, Informationen aus einer Prozedur in eine andere zu übertragen.
Prozedurparameter gibt es sowohl in S- als auch in Nicht-S-Prozeduren.
In S-Prozeduren werden Prozedurparameter als S-Variablen angelegt und bearbeitet. Allerdings haben Prozedurparameter nicht die Eigenschaften, die man von „normalen“ S-Variablen kennt, sondern sie unterscheiden sich von ihnen durch ihre Funktion, den Ort und die Kommandos, mit denen sie deklariert werden, sowie dadurch, dass für sie nicht alle Variablenmerkmale gelten.
Die folgende Tabelle zeigt diese Unterschiede und Gemeinsamkeiten.
S-Variable | Prozedurparameter | |
Ort der Deklaration | Prozedurrumpf | Prozedurkopf |
Kommando für die | DECLARE-VARIABLE | DECLARE-PARAMETER |
Variablentyp | einfache Variable | einfache Variable |
zulässiger Datentyp | ANY | ANY |
Geltungsbereich | explizit definierbar: | implizit definierbar: |
Behälter | als Variablenbehälter: | kein Behälter |
Während in Nicht-S-Prozeduren die Werte beim Prozeduraufruf über Prozedurparameter nur an die aufgerufene Prozedur übergeben werden können, kann in S-Prozeduren dazu über Prozedurparameter auf Variableninhalte übergeordneter Prozeduren zugegriffen werden. Voraussetzung dafür ist, dass die Prozedur entweder mit INCLUDE-PROCEDURE aufgerufen wird oder die betreffenden Variablen taskglobale Variablen sind. (Näheres siehe im Abschnitt „Geltungsbereich von Variablen“).
Die Verknüpfung von Variablen und Prozedurparameter geht so vonstatten, dass die Prozedurparameter im Kommando DECLARE-PARAMETER mit TRANSFER-TYPE = *BY-REFERENCE deklariert werden. Das bedeutet: Die Zeichenfolge, die im Prozedurparameter übergeben wird, wird als Variablenname interpretiert. In der aufgerufenen Prozedur wird dann auf die Variable der aufrufenden Prozedur zugegriffen. (Näheres dazu siehe Abschnitt„Prozedurparameter übergeben“.)