CICS 맵

1 개요[ | ]

BMS는 사용자가 입력한 데이터를 수신한 다음 symbolic map area로 서식화한다. 애플리케이션은 symbolic map에 존재하는 데이터에만 접근할 수 있다. 애플리케이션은 이 데이터를 처리하고 출력을 symbolic map으로 내보낸다. BMS는 symbolic data의 출력을 physical map과 병합한다.

 

2 Physical Map[ | ]

Physical Map = 어떻게 맵이 표시될지에 대한 정보를 포함하는 로드 라이브러리.

  • 맵 내의 필드 속성과 위치에 대한 상세 정보를 포함.
  • 지정된 터미널을 위한 맵의 디스플레이 형식을 포함.
  • BMS 매크로를 사용하여 코딩함. 별도로 assemble된 뒤 CICS 라이브러리 안으로 link-edit됨.

3 Symbolic Map[ | ]

Symbolic Map = 라이브러리의 카피북. CICS 애플리케이션이 카피북을 사용하여 터미널로 데이터를 송수신한다.

  • 프로그램의 WORKING STORACE 섹션에 복사되는 모든 가변 데이터를 포함.
  • 모든 named field를 가지고 있음. 애플리케이션 프로그래머는 이 필드들을 사용하여 맵으로 데이터를 읽고 씀.

4 Skipper Filed / Stopper Filed[ | ]

맵에서 unprotected named 필드의 경우, 길이를 10으로 지정했다면 이 named 필드는 값의 길이가 10을 초과할 수 없다. 그러나 CICS를 사용하여 이 맵을 표시할 때 화면 상에 이 필드의 값의 입력을 시작한다면 10자 이상을 입력할 수 있다. (화면 끝에 온 이후 다음 줄로도 입력이 가능하다) 이를 방지하기 위해 Skipper 필드와 Stopper 필드를 사용한다. Skipper 필드는 일반적으로 길이가 1인 Unnamed field가 되며 named field 뒤에 지정한다.

 

4.1 Skipper Field[ | ]

named unprotected 필드 뒤에 skipper field를 위치시키면 값을 입력하는 동안 지정된 길이에 도달할 때 커서가 자동으로 다음의 unprojected 필드로 이동한다. 다음의 예는 어떻게 skipper field를 추가하는지 설명한다.

NUMBER  DFHMDF POS = (01,01), X
   LENGTH = 5, X
   ATTRB = (UNPROT,IC)
      DFHMDF POS = (01,07), X
      LENGTH = 1, X
      ATTRB = (ASKIP)

4.2 Stopper Field[ | ]

named unprotected 필드 뒤에 stopper field를 위치시키면 값을 입력하는 동안 지정된 길이에 도달할 때 커서가 위치 조정을 정지시킨다. 다음의 예는 어떻게 stopper field를 추가하는지 설명한다.

NUMBER  DFHMDF POS = (01,01), X
   LENGTH = 5, X
	ATTRB = (UNPROT,IC)
	   DFHMDF POS = (01,07), X
      LENGTH = 1, X
      ATTRB = (PROT)

4.3 Attribute Byte[ | ]

필드의 attribute byte는 필드의 physical 속성에 대한 정보를 저장한다. 다음의 그림과 표는 각 비트(bit)의 중요성을 설명한다.

 

비트 위치 설명 비트 설정
0 & 1 비트 2~7의 내용에 의해 결정됨
2 & 3 Protection & Shift 00 - Unprotected Alphanumeric

01 - Unprotected Numeric 10 - Protected Stop 11 - Protected Skip

4 & 5 Intensity 00 - Normal

01 - Normal 10 - Bright 11 - No-display ( Dark )

6 무조건 0이어야 함
7 Modified Data Tag 0 - 필드가 수정되지 않음

1 - 필드가 수정됨

4.4 Modified Data Tag[ | ]

Modified Data Tag(MDT)는 attribute byte 중 마지막 비트이다.

  • MDT는 싱글 비트를 보유하는 플래그이다. 값이 시스템에 전송될지 말지를 결정한다.
  • 필드 값이 변경될 때 기본 값은 1이다.
  • MDT가 0인 경우, 데이터는 전송되지 않는다. MDT가 1인 경우 데이터는 전송이 가능하다.

5 Send Map[ | ]

send map 명령은 형식화된 출력을 터미널로 기록한다. 맵을 애플리케이션에서 터미널로 보낼 때 사용된다. 다음의 코드는 어떻게 맵을 터미널로 보내는지를 보여준다.

        EXEC CICS SEND 
           MAP('map-name')
           MAPSET('mapset-name')
           [FROM(data-area)]
           [LENGTH(data_value)]
           [DATAONLY]
           [MAPONLY]
           [CURSOR]
           [ERASE/ERASEAUP]
           [FREEKB] 
           [FRSET]
        END-EXEC

다음의 표는 send map 명령에 사용되는 매개변수들을 중요성과 함께 나열한 것이다.

Sr.No 매개변수 및 설명
1 Map-name

보내려는 맵의 이름. 필수.

2 Mapset-name

맵 이름을 포함하는 맵셋의 이름. 맵셋 이름은 맵 이름과 동일하지 않다면 필수.

3 FROM

다른 DSECT 이름을 사용하기로 결정한 경우 FROM (dsect-name) 및 SEND MAP 명령을 사용해야 한다.

4 MAPONLY

프로그램의 어떠한 데이터도 맵과 병합되지 않으며 오직 맵의 정보만 전송됨을 의미한다.

5 DATAONLY

MAPONLY과 논리적으로 반대이다. 이미 만들어진 디스플레이의 가변 데이터를 수정하기 위해 사용. 프로그램의 데이터만 화면에 전송된다. 맵의 constant들은 전송되지 않는다.

6 ERASE

전송하는 것이 표시되기 전에 전체 화면을 삭제한다.

7 ERASEUP

unprotected fields만 삭제한다.

8 FRSET

Flag Reset은 전송하는 것이 위치되기 전에 화면 상의 모든 필드에 대해 attribute byte 내의 MDT를 끈다.

9 CURSOR

터미널 화면 위에 커서를 위치시키는데 사용된다. 커서는 필드의 L 파트로 -1 움직인 다음 맵으로 전송함으로써 설정할 수 있다.

10 ALARAM

소리 알람을 낸다.

11 FREEKB.

맵이나 SEND 명령에 FREEKB를 지정하면 키보드가 unlock된다.

12 PRINT

SEND 명령의 출력을 프린터에 출력할 수 있게 한다.

13 FORMFEED

프린터가 출력 전에 종이를 다음 페이지의 최상단으로 복원시키게 한다.

6 Receive Map[ | ]

터미널로부터 입력을 받고자 할 때 RECEIVE MAP 명령을 사용한다. MAP과 MAPSET 매개변수는 SEND MAP 명령의 경우과 의미가 동일하다. 다음의 코드는 맵을 receive하는 방법을 기술한다.

        EXEC CICS RECEIVE 
           MAP('map-name')
           MAPSET('mapset-name')
           [INTO(data-area)]
           [FROM(data-area)]
           [LENGTH(data_value)]
        END-EXEC

7 Mapset 실행[ | ]

다음 단계는 맵셋 개발 및 실행에 필수적이다.

  • Step 1 - TSO 세션을 연다.
  • Step 2 - 새 PDS를 만든다.
  • Step 3 - 요구사항에 따라 새로운 멤버 안에 맵셋을 코딩한다.
  • Step 4 - CICS 관리자가 제공한 JCL을 사용하여 맵셋을 assemble한다.
  • Step 5 - CICS 세션을 연다.
  • Step 6 - 다음 명령을 사용하여 프로그램을 설치한다: CEMT SET PROG (mapset-name) NEW
  • Step 7 - 다음 명령을 입력하여 맵을 터미널로 보낸다: CECI SEND MAP (map-name) MAPSET (mapset-name) ERASE FREEKB
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}