Die Systemfunktion 'dliLib.AIBTDLI()' verwendet die Schnittstelle
AIBTDLI, um eine DL/I-Funktion direkt aufzurufen.
Um eine DL/I-Funktion mithilfe der Schnittstelle CBLTDLI aufzurufen, verwenden Sie die Funktion 'dliLib.EGLTDLI()' oder
'vgLib.VGTDLI()'.
Syntax
dliLib.AIBTDLI()(
Funktion CHAR(4) in,
PCB-Name STRING in
Parameter... ANY)
- Funktion
- Ein aus vier Zeichen bestehender DL/I-Funktionsname wie beispielsweise ISRT oder GHNP.
- PCB-Name
- Eine Zeichenfolge mit dem Namen des Programmkommunikationsblocks (PCB) im Laufzeit-PSB (Programmspezifikationsblock).
- Parameter...
- Eine vollständige Liste der Parameter, die in Anzahl und Typ mit denjenigen Parametern übereinstimmen, die für die DL/I-Funktion erforderlich sind.
Beispiel
Wenn keine EGL-E/A-Anweisung vorhanden ist, die dem gewünschten DL/I-Aufruf entspricht, können Sie
'dliLib.AIBTDLI()' verwenden.
So stellt EGL beispielsweise keine E/A-Anweisung bereit, die einem DL/I-Aufruf FLD für eine
Hauptspeicherdatenbank (MSDB) oder Datenerfassungsdatenbank (DEDB) entspricht. Mithilfe von 'dliLib.AIBTDLI()' können Sie den Aufruf FLD
ausgeben.
Definieren Sie zunächst Ihren PSB-Datensatzabschnitt (PSBRecordPart) und definieren Sie eine Programmvariable auf der Basis
des PSB-Datensatzes (PSBRecord):
Record CustomerPSBRecordPart type PSBRecord { defaultPSBName="STBICLG" }
// Datenbank-PCB
customerPCB DB_PCBRecord { @PCB { pcbType = DB, pcbName = "STDCDBL",
hierarchy = [ @relationship { segmentRecord = "CustomerRecordPart" },
...]}};
end
mypsb CustomerPSBRecordPart;
Definieren Sie als Nächstes
Ihren Ein-/Ausgabebereich; definieren und formatieren Sie auch Ihre Segmentsuchargumente (SSAs). Bitte beachten Sie, dass Sie bei Verwendung von
'
dliLib.AIBTDLI()' die SSAs ordnungsgemäß nach den DL/I-Regel formatieren müssen. Daraufhin können Sie den DL/I-Aufruf FLD wie folgt
ausgeben:
dliLib.AIBTDLI("FLD", "STDCDBL", myIOArea, mySSA1, ... mySSAn);
if (mypsb.customerPCB.statusCode != " ")
// Fehlerbehandlung vornehmen
end
In diesem Beispiel ist STDCDBL der PCB-Name des Laufzeit-PCB. Zur Laufzeit werden die folgenden Aktionen ausgeführt:
- EGL verwendet einen AIB-Steuerblock und verschiebt "STDCDBL" in das Ressourcennamenfeld im Anwendungsschnittstellenblock (AIB).
- EGL konvertiert 'dliLib.AIBTDLI()' in einen DL/I-Aufruf, der die DL/I-Schnittstelle
AIBTDLI verwendet.
- Nach dem Aufruf setzt EGL die Adresse Ihres customerPCB-Datensatzes entsprechend der Adresse des im AIB-Steuerblock zurückgegebenen
PCB. Sie können die Felder im vordefinierten EGL-Datensatz 'DB_PCBRecord' verwenden, um die Ergebnisse des Aufrufs zu bestimmen.