EGLTDLI()

dliLib.EGLTDLI() 시스템 함수는 CBLTDLI 인터페이스를 사용하여 DL/I 함수를 직접 호출합니다.

AIBTDLI 인터페이스를 사용하여 DL/I 함수를 호출하려면 dliLib.AIBTDLI()를 사용하십시오.

구문

  dliLib.EGLTDLI()(
    func CHAR(4) in,
    pcbrecord PCBRecord in
    parms... ANY)
func
ISRT 또는 GHNP와 같은 4문자 DL/I 함수 이름입니다.
pcbrecord
사용자의 프로그램에서 PSB 레코드 내의 PCB 레코드에 지정한 이름입니다.
parms...
주어진 DL/I 함수에 필요한 수와 유형에 일치하는 전체 매개변수 목록입니다.

예제

실행할 DL/I 호출에 해당하는 EGL I/O 문이 없는 경우, dliLib.EGLTDLI()를 사용할 수 있습니다. 예를 들어, EGL은 MSDB(Main Storage Database) 또는 DEDB(Data Entry Database)에 대한 DL/I FLD 호출에 해당하는 I/O 문을 제공하지 않습니다. dliLib.EGLTDLI()를 사용하여 FLD 호출을 실행할 수 있습니다.

우선 PSBRecord 파트를 정의하고 PSBRecord에 프로그램 변수의 기본을 지정하십시오.
Record CustomerPSBRecordPart type PSBRecord { defaultPSBName="STBICLG" } 
  // database PCB 
  customerPCB DB_PCBRecord { @PCB { pcbType = DB, 
  hierarchy = [ @relationship { segmentRecord = "CustomerRecordPart" },
  ...]}}; 
end
  mypsb CustomerPSBRecordPart;

런타임 PCB 이름은 dliLib.EGLTDLI()와 함께 사용되지 않으므로 customerPCB 레코드에 대해 pcbName 특성을 지정할 필요는 없습니다.

다음, I/O 영역을 정의하고 SSA를 정의하고 형식을 지정하십시오. dliLib.EGLTDLI()를 사용하는 경우에는 DL/I 규칙에 따라 SSA의 형식을 정확하게 지정해야 합니다. 그런 다음 DL/I FLD 호출을 실행할 수 있습니다.
dliLib.EGLTDLI("FLD", customerPCB, myIOArea, mySSA1, ... mySSAn);
if (mypsb.customerPCB.statusCode != "  ")
   // do error processing
end

호출의 두 번째 인수로 PCB 레코드(customerPCB)의 이름을 지정하십시오. EGL은 DL/I CBLTDLI 인터페이스를 사용하는 DL/I 호출로 dliLib.EGLTDLI()를 변환합니다. 호출 후 EGL 사전 정의 레코드 DB_PCBRecord의 필드를 사용하여 결과를 판별할 수 있습니다.