AIBTDLI()

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.

Feedback