EGLTDLI()

Die Systemfunktion 'dliLib.EGLTDLI()' verwendet die Schnittstelle CBLTDLI, um eine DL/I-Funktion direkt aufzurufen.

Um eine DL/I-Funktion mit der Schnittstelle AIBTDLI aufzurufen, verwenden Sie die Funktion 'dliLib.AIBTDLI()'.

Syntax

  dliLib.EGLTDLI()(
    Funktion CHAR(4) in,
    PCB-Datensatz PCBRecord in
    Parameter... ANY)
Funktion
Ein aus vier Zeichen bestehender DL/I-Funktionsname wie beispielsweise ISRT oder GHNP.
PCB-Datensatz
Der Name, den Sie einem PCB-Datensatz (Programmkommunikationsblock) innerhalb eines PSB-Datensatzes (Programmspezifikationsblock) in Ihrem Programm zugeordnet haben.
Parameter...
Eine vollständige Liste der Parameter, die in Anzahl und Typ mit denjenigen Parametern übereinstimmen, die für die entsprechende 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.EGLTDLI()' 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.EGLTDLI()' 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, 
  hierarchy = [ @relationship { segmentRecord = "CustomerRecordPart" },
  ...]}}; 
end

  mypsb CustomerPSBRecordPart;

Sie brauchen die Eigenschaft 'pcbName' für 'customerPCB' nicht anzugeben, da der Laufzeit-PCB-Name nicht mit 'dliLib.EGLTDLI()' verwendet wird.

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.EGLTDLI()' die SSAs ordnungsgemäß nach den DL/I-Regel formatieren müssen. Daraufhin können Sie den DL/I-Aufruf FLD wie folgt ausgeben:
dliLib.EGLTDLI("FLD", customerPCB, myIOArea, mySSA1, ... mySSAn);
if (mypsb.customerPCB.statusCode != "  ")
   // Fehlerbehandlung vornehmen
end

Geben Sie den Namen Ihres PCB-Datensatzes (customerPCB) als zweites Argument des Aufrufs an. EGL konvertiert 'dliLib.EGLTDLI()' in einen DL/I-Aufruf, der die DL/I-Schnittstelle CBLTDLI verwendet. Nach dem Aufruf können Sie die Felder im vordefinierten EGL-Datensatz 'DB_PCBRecord' verwenden, um die Ergebnisse zu bestimmen.


Feedback