dliLib.EGLTDLI() システム関数は、CBLTDLI インターフェースを使用して DL/I 関数を直接呼び出します。
AIBTDLI インターフェースを使用して DL/I 関数を呼び出すには、dliLib.AIBTDLI() を使用します。
dliLib.EGLTDLI()(
func CHAR(4) in,
pcbrecord PCBRecord in
parms... ANY)
発行する DL/I 呼び出しに対応する EGL I/O ステートメントがない場合は、dliLib.EGLTDLI() を使用できます。 例えば、主記憶データベース (MSDB) およびデータ入力データベース (DEDB) に対する DL/I FLD 呼び出しに対応する I/O ステートメントは EGL に用意されていません。この場合は、dliLib.EGLTDLI() を使用して、FLD 呼び出しを発行することができます。
Record CustomerPSBRecordPart type PSBRecord { defaultPSBName="STBICLG" }
// database PCB
customerPCB DB_PCBRecord { @PCB { pcbType = DB,
hierarchy = [ @relationship { segmentRecord = "CustomerRecordPart" },
...]}};
end
mypsb CustomerPSBRecordPart;
dliLib.EGLTDLI() ではランタイム PCB 名は使用されないため、customerPCB レコードの pcbName プロパティーを指定する必要はありません。
dliLib.EGLTDLI("FLD", customerPCB, myIOArea, mySSA1, ... mySSAn);
if (mypsb.customerPCB.statusCode != " ")
// エラー処理
end
PCB レコード (customerPCB) の名前を、その呼び出しの 2 番目の引数として指定します。EGL は、dliLib.EGLTDLI() を、DL/I CBLTDLI インターフェースを使用する DL/I 呼び出しに変換する。呼び出し後、EGL 事前定義レコード DB_PCBRecord 内のフィールドを使用して、結果を判別することができます。