IMS MFS 메시지 입력 디스크립터(MID)의 형식
지연된 프로그램 대 프로그램 메시지 전환을 위해 양식을 읽고 터미널에 쓰는 IMS™ MFS 메시지 입력 디스크립터(MID)와 메시지 출력 디스크립터(MOD)는 같은 기본 형식을 공유합니다. 아래 표에는 MID의 레코드 레이아웃이 표시되어 있습니다. MFS MOD의 경우에는 IMS 트랜잭션 이름 및 COND 매개변수의 값(양식 이름)이 예약되어 있습니다. 또한 MOD의 일부 필드는 무시됩니다.
| 필드 | 길이(바이트) | 데이터 유형 | 설명 |
|---|---|---|---|
| 세그먼트 길이 | 2 | 2진 | 세그먼트의 길이입니다. |
| 예약됨 | 2 | 2진 | IMS를 위해 예약되어 있습니다. |
| IMS 트랜잭션 이름 | 8 | 문자 | EGL 프로그램의 IMS 트랜잭션 이름입니다. |
| 예약됨 | 1 | 문자 | Rational® COBOL Runtime for zSeries를 위해 예약되어 있습니다. |
| 양식 이름 | 8 | 문자 | 지연된 프로그램 대 프로그램 메시지 전환의 MID에 있는 MFS COND 매개변수의 값입니다. |
| 추가 Rational COBOL Runtime for zSeries 필드 | 51 | 다양함 | Rational COBOL Runtime for zSeries에서 양식을 유효성 검증하는 데 사용하는 필드의 그룹입니다. 프로그램 양식 필드 시작 전 모든 필드의 전체 길이는 72바이트입니다. |
| 프로그램 양식 필드 | 다양함 | 다양함 | 이 영역은 EGL 양식을 위해 정의된 필드를 포함합니다. |
다음 예제에는 지연된 프로그램 대 프로그램 메시지 전환의 메시지 입력 디스크립터(MID)에 대한 COBOL 정의가 표시되어 있습니다.
PL/I는 COBOL에 사용되는 2바이트 길이 필드가 아니라 4바이트 길이 필드를 필요로 한다는 것을 기억하십시오. 추가 정보는 사용자의 시스템에 해당하는 IMS/VS 문서를 참조하십시오.
특정 필드 이름은 설명을 위해서만 사용되었으며 생성되는 코드의 실제 필드 이름은 다를 수 있습니다.
* CopyMember ELAAHMMI
01 EZEMAP-IO-AREA.
05 EZEMAP-HEADER.
10 EZEMAP-LL PIC S9(4) COMP.
10 EZEMAP-ZZ
15 EZEMAP-Z1 PIC X(1).
15 EZEMAP-Z2 PIC X(1).
10 EZEMAP-ZZ-BIN REDEFINES EZEMAP-ZZ
PIC S9(4) COMP.
10 EZEMAP-MID-TRANCODE. Note 1
15 EZEMAP-MOD-MAP PIC X(8).
10 FILLER PIC X(1).
10 EZEMAP-MOD-TRANCODE.
15 EZEMAP-MID-MAP PIC X(8).
10 EZEMAP-STRUCTURE-TYPE PIC X(4).
88 EZEMAP-IS-A-MAP VALUE "MAP ".
10 EZEMAP-SCA PIC X(2). Note 2
10 EZEMAP-SCA-BIN REDEFINES EZEMAP-SCA
PIC S9(4) COMP.
10 EZEMAP-EZEAID PIC X(2). Note 3
10 EZEMAP-HELP-PF-KEY PIC X(2).
10 EZEMAP-BYPASS-PF-KEYS.
15 EZEMAP-BYPASS-PF-KEY PIC X(2)
OCCURS 5 TIMES.
10 EZEMAP-HELP-MAP-NAME PIC X(8).
10 EZEMAP-CURSOR.
15 EZEMAP-ROW PIC S9(4) COMP.
15 EZEMAP-COL PIC S9(4) COMP.
10 EZEMAP-GEN-DATE-TIME.
15 EZEMAP-DATE PIC X(8).
15 EZEMAP-TIME PIC X(8).
10 EZEMAP-SSM-STATUS-ATTR PIC X(2). Note 4
88 EZEMAP-SSM-PREMODIFIED VALUE X"0081".
10 EZEMAP-SSM-STATUS PIC X(1). Note 5
88 EZEMAP-SSM-INVALID VALUE X"40" X"FF" X"00".
88 EZEMAP-SSM-WSR-SAVED VALUE "C".
88 EZEMAP-SSM-WSR-MAP-SAVED VALUE "D".
88 EZEMAP-SSM-FILL-CHAR VALUE X"FF".
* Copymember for form group formGroup
01 EZEMFS-form REDEFINES EZEMAP-IO-AREA.
05 EZEMFS-form-HEADER PIC X(72). Note 6
05 EZEMAP-DATA.
10 formField. Note 7
15 EZEATTR PIC X(08).
15 EZEDATA PIC .... Note 8
.
.
.
이 예제에는 다음 참고사항이 적용됩니다. - MOD의 경우에는 트랜잭션 이름 및 맵 이름이 예약되어 있습니다. 대화식 트랜잭션이 IMS /FORMAT 명령을 사용하여 시작된 경우 IMS는 데이터 스트림에서 해당 트랜잭션 이름을 제거합니다.
- MID에서 SCA는 공백으로 설정됩니다. MOD에서 SCA는 MOD를 삽입하는 프로그램에 의해 2진 0으로 초기화되어야 합니다.
- MOD에서 EZEMAP-GEN-DATETIME 필드를 통한 EZEAID 필드는 비워 둘 수 있습니다. 이러한 필드에 삽입된 값은 입력 시 리턴되지 않습니다.
- 전송 프로그램은 EZEMAP-SSM-PREMODIFIED를 TRUE로 설정하여 EZEMAP-SSM-STATUS의 값이 대상 프로그램으로 전송되도록 해야 합니다.
- 전송 프로그램에서 입력 레코드를 초기화하는 데 사용하기 위해 대상 비대화식 프로그램의 작업 데이터베이스에 데이터를 저장하는 경우, 이 프로그램은
이 필드를 설정하는 데 레벨 88 EZEMAP-SSM-WSR-SAVED를 사용해야 합니다. 그렇지 않은 경우에는 레벨 88 EZEMAP-SSM-INVALID를 사용하여 이 필드를 초기화해야 합니다.
대상 프로그램은 EZEMAP-SSM-STATUS의 값을 테스트하여 작업 데이터베이스에 복원할 데이터가 있는지 판별해야 합니다. EZEMAP-SSM-WSR-SAVED 또는 EZEMAP-SSM-WSR-MAP-SAVED가 true인 경우에는 작업 데이터베이스에 복원할 레코드가 있는 것입니다.
- Form은 EGL에 정의된 양식의 실제 이름 또는 양식의 alias 특성으로 지정된 이름이며, 생성 시에 별명이 지정된 경우에는 이 별명입니다.
- formField는 양식에 정의된 필드의 실제 이름이며, 생성 시에 별명이 지정된 경우에는 이 별명입니다. formField가 배열이면 OCCURS 절이 사용됩니다.
- PIC 표시는 양식 필드의 유형 및 길이에 따라 달라집니다.