Die Systemfunktion vgLib.VGTDLI() verwendet die CBLTDLI-Schnittstelle, um eine DL/I-Funktion direkt aufzurufen.
Die Funktion unterscheidet sich von der dliLib-Funktion EGLTDLI() nur dahingehend, dass sie eine Indexvariable verwendet, um den PCB für den Aufruf zu referenzieren, während EGLTDLI() den Namen des PCB-Datensatzes verwendet. EGL enthält diese Funktion, um Kompatibilität mit der CSPTDLI()-Funktion in VisualAge Generator sicherzustellen.
vgLib.VGTDLI()(
func CHAR(4) in,
pcbindex SMALLINT in
parms... ANY)
Zum Aufrufen einer DL/I-Funktion mithilfe der AIBTDLI-Schnittstelle verwenden Sie dliLib.AIBTDLI().
Record CustomerPSBRecord type PSBRecord { defaultPSBName="STBICLG" }
// 3 other PCBs
...
// database PCB
customerPCB DB_PCBRecord { @PCB { pcbType = DB,
hierarchy = [ @relationship { segmentRecord = "CustomerRecord" },
...]}};
end
mypsb CustomerPSBRecord;
Beachten Sie, dass Sie die Eigenschaft pcbName für den
customerPCB-Datensatz nicht angeben müssen, weil der Laufzeit-PCB-Name nicht mit vgLib.VGTDLI() verwendet wird.
In diesem Beispiel wird angenommen, dass es drei PCBs vor dem 'customerPCB' in dem 'CustomerPSBRecord' gibt. vgLib.VGTDLI("FLD", 4, myIOArea, mySSA1, ... mySSAn);
if (mypsb.customerPCB.statusCode != " ")
// do error processing
end
Beachten Sie, dass Sie den Index Ihres PCB (4)
als zweites Argument des Aufrufs angeben. EGL konvertiert vgLib.VGTDLI() in einen DL/I-Aufruf, der die DL/I-CBLTDLI-Schnittstelle verwendet. Nach dem Aufruf können Sie die Felder in dem vordefinierten Datensatz 'DB_PCBRecord' der EGL verwenden, um die Ergebnisse des Aufrufs zu bestimmen.