Referenzinformationen für spezielle Parameter für die Anweisung 'call' oder 'transfer'

Gehen Sie wie folgt vor: 

Die folgenden Abschnitte enthalten weitere Informationen.

Format eines in einem Aufruf übergebenen Text- oder Druckformulars

Text- oder Druckformulare, die Sie an einen Aufruf übergeben, werden mit zusätzlichen 8 Byte großen Feldern definiert, die vor jedem Felddaten-Inhaltsbereich stehen. Die ersten 6 Byte des zusätzlichen Felds werden auf Leerzeichen festgelegt. Die letzten 2 Byte des zusätzlichen Felds enthalten die Datenlänge. Die Feldlänge wird auf die Länge des im Formular definierten Felds festgelegt. Das 8-Byte-Präfix ist nicht enthalten. Wenn die empfangende Struktur im aufgerufenen Programm kein Formular ist, hat die Struktur Platz für 8 Byte vor jedem Datenelement. Ein aufgerufenes Programm kann die Daten nur in den Variablenfeldern im übergebenen Formular ändern. Beispielsweise kann ein aufgerufenes Programm die Attribute einer Formularvariable nicht ändern.

Abbildung 1. Format des mit der "call"-Anweisung übergebenen Formularbereichs
Das zusätzliche Feld hat 6 Byte Leerzeichen und 2 Byte mit der Länge des Formularfelds.

Beim Übergeben eines Formulars als Parameter von einem AIX-System an ein Nicht-AIX-System und umgekehrt müssen die binären 2-Byte-Felder an der 2-Byte-Begrenzung ausgerichtet werden, die beim dritten Byte des 8-Byte-Felds beginnt.

Format der Struktur "dliLib.psbData"

EGL-generierte COBOL-Programme verwenden die Struktur "dliLib.psbData" für die Übergaben von PSB-Informationen zwischen Programmen. Weitere Informationen zu "dliLib.psbData" finden Sie im Onlinehilfesystem. "dliLib.psbData" ist eine 12-Byte-Struktur, die aus dem 8-Byte-PSB-Namen besteht, gefolgt von einer 4-Byte-Adresse.

Unter CICS verweist die Adresse auf den Benutzerschnittstellenblock (UIB). Der UIB ist 6 Byte lang. Die ersten 4 Byte enthalten die Adresse der PCB-Adressliste für den PSB. Die letzten 2 Byte enthalten die Statusinformationen (z. B. die Angabe, ob der PSB Statusinformationen enthält).

Unter Nicht-CICS-Systemen verweist die Adresse auf einen simulierten UIB. Der simulierte UIB ist 6 Byte lang. Die ersten 4 Byte enthalten die Adresse der PCB-Adressliste für den PSB. Die letzten 2 Byte müssen binäre Nullen enthalten. Die PCB-Adressliste muss die Liste sein, auf die Register 1 verweist, wenn der IMS- oder der DL/I-Regionscontroller das erste Programm in der DL/I-Ausführungseinheit aufgerufen hat.

In der folgenden Abbildung wird das Format von "dliLib.psbData" dargestellt.

Abbildung 2. Format von "dliLib.psbData"
Format von "dliLib.psbData"

Format eines PCB-Datensatzes

Ein PCB-Datensatzparameter wird immer mit einem 4-Byte-Zeiger übergeben, da das aufgerufene Programm auf den tatsächlichen DL/I-PCB in DL/I-Aufrufen verweisen muss. Das aufgerufene Programm kann keine Kopie des PCB verwenden. Wenn der COMMDATA angegeben wurde, wird der 4-Byte-Zeiger in den COMMAREA an die Position des PCB-Datensatzarguments verschoben.

Die Hinweise oben gelten für die Schnittstellen AIBTDLI und CBLTDLI. Wenn Sie die Schnittstelle AIBTDLI (Standard) im Feld "callInterface" entsprechend der Programmeigenschaft "@DLI" angegeben haben, verwendet EGL den AIB-Steuerungsblock, um nach der PCB-Adresse (PCB-Adresse entspricht dem AIB-PCB-Namen) zu suchen und gibt dann einen CBLTDLI-Aufruf für diese Adresse aus.


Feedback