EGL 프로그램에서 IMS 함수 사용

EGL 프로그램에서 IMS™ 함수를 사용할 수 있습니다.

다음 테이블은 EGL 프로그램에서 사용할 수 있는 IMS 함수를 나열합니다. 테이블에는 또한 해당 함수를 사용하는 방법을 요약되어 있습니다.
표 1. IMS 함수 및 EGL에서 이를 표시하는 방법
IMS 함수 EGL 함수 주석
프로그램 유형
IMS 대화식
  • converse 문을 사용하는 기본 텍스트 UI 프로그램
  • 프로그램 특성: segmented = YES
  • 빌드 디스크립터 옵션: spaSize > 0
workDBType 빌드 디스크립터 옵션은 DL/I 또는 DB2®를 사용하여 converse 문에 데이터를 저장할지 여부를 지정합니다.
IMS 비대화식 또는 메시지 구동 단축 경로(옵션 1)
  • converse 문을 사용하는 기본 텍스트 UI 프로그램
  • 프로그램 특성: segmented = YES
  • 빌드 디스크립터 옵션: spaSize = 0
  • workDBType 빌드 디스크립터 옵션은 DL/I 또는 DB2를 사용하여 converse 문에 데이터를 저장할지 여부를 지정합니다.
  • YES로 설정된 imsFastPath 빌드 디스크립터 옵션은 명령문 및 EGL 오류 처리를 IMS 단축 경로 프로그램에서 허용된 사항으로 제한합니다.
IMS 비대화식 또는 메시지 구동 단축 경로(옵션 2)
  • show 문을 사용하는 기본 textUI 프로그램
  • 프로그램 특성: inputForm이 설정됨
  • 빌드 디스크립터 옵션: spaSize > 0
  • workDBType 빌드 디스크립터 옵션은 DL/I 또는 DB2를 사용하여 show 문의 레코드를 전달할지 여부를 지정합니다.
  • YES로 설정된 imsFastPath 빌드 디스크립터 옵션은 명령문 및 EGL 오류 처리를 IMS 단축 경로 프로그램에서 허용된 사항으로 제한합니다.
IMS 비대화식 또는 메시지 구동 단축 경로(옵션 3, 텍스트 양식 아님) I/O PCB와 연관되고 IMS/VS에 대해 생성된 연속 레코드에 대해 get next를 수행하도록 루프하는 기본 프로그램입니다. YES로 설정된 imsFastPath 빌드 디스크립터 옵션은 명령문 및 EGL 오류 처리를 IMS 단축 경로 프로그램에서 허용된 사항으로 제한합니다.
트랜잭션 지향 BMP I/O PCB와 연관되고 IMS BMP에 대해 생성된 연속 레코드에 대해 get next를 수행하도록 루프하는 기본 프로그램입니다.  
일괄처리 지향 BMP I/O PCB와 연관되고 IMS BMP에 대해 생성되었지만 연속 레코드를 사용하지 않는 기본 프로그램입니다.  
DL/I 일괄처리 DL/I가 사용하고 z/OS® 일괄처리를 위해 생성되는 기본 프로그램  
일반 z/OS 일괄처리 DL/I가 사용하고 z/OS 일괄처리를 위해 생성되는 기본 프로그램  
터미널 및 프린터 지원
MFS 소스 텍스트 및 인쇄 양식이 있는 FormGroup EGL이 FormGroup에 대해 MFS 소스를 생성합니다.
터미널과 통신
  • 입출력(I/O)에 대한 converse
  • 다음 프로그램에서 inputForm 특성을 가진 show
 
터미널 프린터에 대한 인쇄 출력
  • print
  • smsgq 및 지정된 pcbName으로 설정된 프린터에 대한 자원 연관
 
동적 프린터 지원 런타임 시 프린터 연관을 동적으로 변경하도록 converseVar.printerAssociation 설정  
/FORMAT modname formName
  • modname은 6자의 FormGroup 또는 문자 0와 연결된 별명입니다.
  • formName은 8자의 텍스트 양식 이름 또는 별명입니다.
  • 프로그램은 inputForm 특성을 /FORMAT 명령에서 사용되는 formName으로 설정해야 합니다.
 
실제 및 논리적 페이징 지원되지 않음 EGL 양식은 실제 또는 논리적 페이지의 정의를 지원하지 않습니다.
MFS 소스를 생성하기 위한 SDF II 지원되지 않음 EGL 생성에는 편집 순서 및 특수 제어 필드에 대한 지식이 필요합니다.
SQL 데이터베이스 지원
DB2 데이터베이스 정의 및 액세스 SQLRecord 정의 및 SQL I/O 문 EGL은 기본 SQL 문을 작성합니다. #sql 지시문을 사용하여 기본값을 수정하십시오.
DL/I 데이터베이스 지원
사용할 PSB @dli 복합 특성의 psb 특성은 EGL PSBRecord의 프로그램 변수 이름을 식별합니다. EGL PSB는 IMS PSB에서 정보의 서브세트입니다.
DL/I 데이터베이스 정의 및 액세스 PSBRecord 정의, DLISegment 정의, DL/I I/O 문입니다. I/O 문의 usingPCB 키워드는 사용할 PCB를 식별합니다. EGL은 기본 SSA를 작성합니다. #dli 지시문을 사용하여 기본값을 수정하십시오.
DL/I 단축 경로 데이터베이스 정의 및 액세스
  • DL/I 데이터베이스 정의 및 액세스의 경우와 동일함
  • FLD 및 POS 호출에 대해 dliLib.AIBTDLI(), dliLib.EGLTDLI() 또는 vgLib.VGTDLI() 사용
  • 새 프로그램에 대해 dliLib.AIBTDLI()가 선호됨
#dli 지시문을 사용 중인 경우 EGL이 2자의 명령 코드를 허용함
IMS 메시지 큐
  • SerialRecord 정의
  • addclose 문을 사용하여 대체 TP PCB와 연관된 레코드를 쓰십시오. 또는 vgLib.startTransaction()을 사용하십시오.
  • get next 문을 사용하여 I/O PCB와 연관된 레코드를 읽으십시오.
  • 출력 큐 이름을 동적으로 변경하도록 recordName.resourceAssociation을 설정하십시오.
I/O PCB와 연관된 연속 레코드에 대해 EGL 기본 프로그램에서 get next 문을 사용하십시오. 레코드는 이전 프로그램에서 vgLib.startTransaction() 함수 또는 add 문에 의해 삽입되었을 수 있습니다. z/OS 일괄처리에 지원되지 않습니다.
GSAM 파일
  • SerialRecord 정의
  • add, get next, close 문을 사용하여 GSAM 파일과 연관된 레코드에 액세스하십시오.
IMS BMP 또는 z/OS 일괄처리에만 지원됩니다.
파일 지원
순차 파일 지원 seq 또는 seqrs로 설정된 fileName의 자원 연관이 있는 연속 레코드
  • EGL이 COBOL 파일 I/O을 사용하는 경우 seq를 사용하십시오.
  • EGL이 파일 I/O에 대해 Rational® COBOL 런타임을 사용하는 경우 seqrs를 사용하십시오.
  • IMS BMP 또는 z/OS 일괄처리에만 지원됩니다.
VSAM 파일 지원 vsam 또는 vsamrs로 설정된 fileName의 자원 연관이 있는 연속 레코드, 색인화된 레코드 또는 상대 레코드
  • EGL이 COBOL 파일 I/O을 사용하는 경우 vsam을 사용하십시오.
  • EGL이 파일 I/O에 대해 Rational COBOL 런타임을 사용하는 경우 vsamrs를 사용하십시오.
  • IMS BMP 또는 z/OS 일괄처리에만 지원됩니다.
런타임 시 동적으로 파일 이름 변경 recordName.resourceAssociation seqrs 또는 vsamrs의 사용 필요
COBOL DISPLAY 문
  • sysLib.writeStdOut()
  • sysLib.writeStdErr()
출력 대상은 사용자가 COBOL 컴파일러 옵션 OUTDD에서 지정하는 DDNAME입니다. 기본적으로 출력은 IMS BMP 또는 z/OS 일괄처리 작업을 실행하는 IMS/VS 또는 JCL의 메시지 영역을 시작하는 작업에서 DDNAME SYSOUT에 작성됩니다.
IMS 메시지 전환
즉각적인 프로그램 간 메시지 전환
  • 다른 EGL 프로그램 또는 비EGL 프로그램으로 레코드를 전달하는 transfer to transaction
  • spaSize 빌드 디스크립터 옵션이 0으로 설정된 경우 이는 비대화식 메시지 전환이며 레코드가 작업 데이터베이스에서 전달됩니다.
  • spaSize 빌드 디스크립터 옵션이 0보다 큰 경우, 이는 대화식 메시지 스위치이고 레코드가 SPA에서 전달됩니다.
  • 새 로드 모듈이 있고 PSB가 로드 모듈 이름과 일치해야 하므로 트랜잭션 이름 및 PSB 이름을 변경해야 합니다.
  • FormGroup은 두 프로그램에 대해 동일하거나 다를 수 있습니다.
연기된 프로그램 간 메시지 전환(메소드 1)
  • 첫 번째 프로그램은 show 문으로 끝납니다. 다음 프로그램은 inputFormshow 문에서 지정된 동일한 텍스트 양식으로 설정해야 합니다.
  • spaSize 빌드 디스크립터 옵션이 0으로 설정된 경우 이는 비대화식 메시지 전환이며 레코드가 작업 데이터베이스에서 전달됩니다.
  • spaSize 빌드 디스크립터 옵션이 0보다 큰 경우, 이는 대화식 메시지 스위치이고 레코드가 SPA에서 전달됩니다.
  • 새 로드 모듈이 있고 PSB가 로드 모듈 이름과 일치해야 하므로 트랜잭션 이름 및 PSB 이름을 변경해야 합니다.
  • FormGroup은 두 프로그램에 대해 동일해야 합니다.
연기된 프로그램 간 메시지 전환(메소드 2) 프로그램은 converse 문을 사용하고 converse 문 전에 sysVar.transactionID를 새 트랜잭션 코드로 설정합니다. 동일한 EGL 프로그램 내에서 트랜잭션 이름 변경을 허용합니다. 프로그램이 변경되지 않으므로 두 트랜잭션 모두가 동일한 PSB 및 FormGroup을 사용해야 합니다.
Miscellaneous
기본 체크포인트 sysLib.commit() 시스템 함수  
기호 체크포인트 dliLib.AIBTDLI(), dliLib.EGLTDLI() 또는 vgLib.VGTDLI() 다음을 참조하십시오.
다시 시작(XRST 호출) dliLib.AIBTDLI(), dliLib.EGLTDLI() 또는 vgLib.VGTDLI() 다음을 참조하십시오.
롤백 sysLib.rollback() 시스템 함수  
로그 호출 sysLib.audit() 시스템 함수 audit()의 내용을 참조하십시오.
대체 TP PCB에 대한 PURG 호출 출력 IMS 메시지 큐와 연관된 연속 레코드 또는 인쇄 양식에 대해 close 문을 사용하십시오.  
비동기 처리 vgLib.startTransaction() startTransaction()의 내용을 참조하십시오.