IPF 서브루틴

본 장에서는 IPF의 서브루틴에 대해서 설명한다. IPF 서브루틴의 동작과 응용 프로그램과의 인터페이스 형식에 대해 기술한다.

1. 개요

IPF에는 응용 프로그램에서 TSO 명령어를 호출하는 기능과 응용 프로그램에서 화면으로 데이터의 입출력을 처리하는 기능이 있다.

OpenFrame에서 지원하는 IPF의 서브루틴에는 다음의 10가지가 있다.

서브루틴 설명

IPFCMD

응용 프로그램으로부터 TSO 명령어를 호출한다.

IPFCVS

논리 화면을 종료한다.

IPFMIO

메뉴 정의체를 이용해 화면 입출력 처리를 실시한다.

IPFMRR

IPFMIO/IPFMTO가 호출된 후 메시지를 출력한다. 일본어를 지원한다.

IPFMTO

메뉴 정의체를 이용해 화면 출력 처리를 실시한다.

IPFOVS/IPFOPN

논리 화면을 오픈한다.

IPFPFF/IPFPFS

화면 이동을 위해 예약되어 있는 function key를 해제하거나 재설정한다.

IPFRIO

IPFMIO/IPFMTO가 호출된 후 동일 화면에 대해 refresh 기능을 실시한다.

응용 프로그램과의 인터페이스

COBOL과 같은 응용 프로그램에서 CALL 명령으로 IPF 서브루틴을 호출해서 데이터를 주고받을 수 있다.

다음은 COBOL에서 IPF 서브루틴을 호출하는 예이다.

CALL 'IPFCMD' USING RC1 RC2 CMD L.
...
CALL 'IPFOVS' USING PIA LSIA RCA.
...
CALL 'IPFMIO' USING LSIA MIA MDA RCA.
...
CALL 'IPFCVS' USING LSIA RCA.

2. IPFCMD

응용 프로그램으로부터 TSO 명령어를 호출한다.

  • 사용법

    IPFCMD의 사용 형식은 다음과 같다.

    CALL IPFCMD
         RC1
         RC2
         CMD
         L

    다음은 IPFCMD의 파라미터에 대한 설명이다.

    항목 설명

    RC1

    IPFCMD의 리턴 코드를 설정하는 4bytes의 영역이다.

    RC2

    TSO 명령어의 리턴 코드를 설정하는 4bytes의 영역이다.

    CMD

    TSO 명령어를 기술하는 Lbytes의 캐릭터 영역이다.

    L

    CMD의 길이를 설정하는 영역이다. (최대 길이: 32760)

3. IPFCVS

논리 화면을 종료한다. 이 서브루틴이 호출된 후에는 화면 입출력이 불가능하다.

  • 사용법

    IPFCVS의 사용 형식은 다음과 같다.

    CALL IPFCVS
         LSIA
         RCA

    다음은 IPFCVS의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    종료할 논리 화면을 식별하기 위한 128bytes의 영역이다.

    IPFOVS/IPFOPN으로 오픈할 당시 지정한 LSIA와 동일해야 한다.

    RCA

    IPFCVS를 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

4. IPFMIO

구분 데이터 셋(PDS)에 멤버로 등록된 메뉴 정의체를 이용해 화면 입출력 처리를 실시한다.

  • 사용법

    IPFMIO의 사용 형식은 다음과 같다.

    CALL IPFMIO
         LSIA
         MIA
         MDA
         [N PMA]
         [CSA]
         RCA

    다음은 IPFMIO의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    액세스할 논리 화면을 식별하기 위한 128bytes의 영역이다.

    LSIA를 가지는 논리 화면이 반드시 먼저 오픈되어 있어야 한다.

    MIA

    메뉴 식별을 위한 16bytes의 영역이다.

    MIA는 다시 DD명 8bytes와 멤버명 8bytes로 구분된다.

    • DD명 : 사용할 메뉴 정의체를 멤버로 가지는 데이터 셋의 DD명을 지정한다.

    • 멤버명 : 사용할 메뉴 정의체의 멤버명을 지정한다.

    MDA

    메뉴 정의체의 파라미터 지정에 대응해 실제로 전송되는 입출력 데이터가 저장되는 영역이다.

    N

    속성이 변경되는 파라미터 영역(PMA)의 개수이다. 0인 경우 PMA 값은 무시된다. (PMA와 함께 생략 가능)

    PMA

    파라미터 필드 속성을 일시적으로 변경하기 위해 사용되는 4 x Nbyte의 영역이다.

    다음과 같이 다시 3개의 영역으로 구성된다. (N과 함께 생략이 가능)

    • 파라미터 번호(PNO) : 변경할 액션 파라미터 번호를 지정하는 2bytes 영역이다.

    • 속성 문자(ATTR) : 새로 부여할 속성을 지정하는 1byte 영역이다.

    • 변경 통지 문자(M) : OpenFrame에서는 지원하지 않는다.

    CSA

    커서의 위치를 설정하는 4bytes의 영역이다.

    다음과 같이 2개의 영역으로 구성된다. (생략 가능)

    • CSA1 : 커서를 위치시킬 파라미터 번호를 2bytes로 설정한다.

    • CSA2 : 지정한 파라미터 내의 선두로부터의 위치를 2bytes로 설정한다.

    RCA

    IPFMIO를 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

5. IPFMRR

IPFMIO/IPFMTO가 호출된 후 메시지 출력을 위해 사용된다. 일본어 메시지도 출력 가능하다.

  • 사용법

    IPFMRR의 사용 형식은 다음과 같다.

    CALL IPFMRR
         LSIA
         MA
         MPA
         MDA
         [PNA1 PNA2 ...]
         [CSA]
         RCA

    다음은 IPFMRR의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    액세스할 논리 화면을 식별하기 위한 128bytes의 영역이다.

    LSIA를 가지는 논리 화면이 반드시 먼저 오픈되어 있어야 하며 IPFMIO/IPFMTO에서 지정된 LSIA와 같아야 한다.

    MA

    메시지로 출력할 데이터를 포함하는 영역이다. 일본어 데이터도 사용 가능하다.

    MPA

    메시지를 출력할 논리 화면상의 행 위치를 지정한다.

    MDA

    메뉴 정의체의 파라미터 지정에 대응해 실제로 전송되는 출력 데이터가 저장되는 영역이다.

    PNAi

    속성을 변경할 파라미터 번호를 지정하는 2bytes 영역이다.

    OpenFrame에서는 에러가 발생하지 않도록 파싱만 지원한다. (생략 가능)

    CSA

    커서의 위치를 설정하는 4bytes의 영역이다. 자세한 내용은 IPFMIO를 참고한다.

    RCA

    IPFMRR을 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

6. IPFMTO

구분 데이터 셋(PDS)에 멤버로 등록된 메뉴 정의체를 이용해 화면 상에 출력 처리만을 실시한다. IPFMIO와 달리 입력값을 받지 않으며 화면을 출력한 후에 곧바로 리턴된다.

  • 사용법

    IPFMTO의 사용 형식은 다음과 같다.

    CALL IPFMTO
         LSIA
         MIA
         MDA
         [N PMA]
         [CSA]
         RCA

    다음은 IPFMTO의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    액세스할 논리 화면을 식별하기 위한 128bytes의 영역이다.

    LSIA를 가지는 논리 화면이 반드시 먼저 오픈되어 있어야 한다.

    MIA

    메뉴 식별을 위한 16bytes의 영역이다.

    MIA는 다시 DD명 8bytes와 멤버명 8bytes로 구분된다.

    • DD명 : 사용할 메뉴 정의체를 멤버로 가지는 데이터 셋의 DD명을 지정한다.

    • 멤버명 : 사용할 메뉴 정의체의 멤버명을 지정한다.

    MDA

    메뉴 정의체의 파라미터 지정에 대응해 실제로 전송되는 출력 데이터가 저장되는 영역이다.

    N

    속성이 변경되는 파라미터 영역(PMA)의 개수이다. 0인 경우 PMA 값은 무시된다. (PMA와 함께 생략 가능)

    PMA

    파라미터 필드 속성을 일시적으로 변경하기 위해 사용되는 4 x Nbyte의 영역이다. 자세한 내용은 IPFMIO를 참고한다.

    CSA

    커서의 위치를 설정하는 4bytes의 영역이다. 자세한 내용은 IPFMIO를 참고한다.

    RCA

    IPFMTO를 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

7. IPFOVS/IPFOPN

논리 화면을 오픈한다. 화면 입출력 처리를 위해서는 반드시 먼저 이 서브루틴을 호출해야 한다.

  • 사용법

    IPFOVS/IPFOPN의 사용 형식은 다음과 같다.

    CALL IPFOVS | IPFOPN
         PIA
         LSIA
         [LSDA]
         RCA

    다음은 IPFOVS/IPFOPN의 파라미터에 대한 설명이다.

    항목 설명

    PIA

    프로그램 식별을 위한 4bytes의 영역이다.

    LSIA

    논리 화면을 식별하기 위한 128bytes의 영역이다.

    LSDA

    논리 화면 정의 영역으로, 논리 화면의 속성을 지정하는 정보가 들어가 있는 24bytes의 영역이다. (생략 가능)

    RCA

    IPFOVS/IPFOPN을 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

8. IPFPFF/IPFPFS

IPF에서 기본값으로 지정되어 있는 스크롤 키(PF7, PF8, PF10, PF11, PF19, PF20, PF22, PF23)를 해제(IPFPFF)하거나, 해제된 키를 재설정(IPFPFS)하는 기능이다.

  • 사용법

    IPFPFF/IPFPFS의 사용 형식은 다음과 같다.

    CALL IPFPFF | IPFPFS
         LSIA
         [PFN1 PFN2 ...]
         RCA

    다음은 IPFPFF/IPFPFS의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    액세스할 논리 화면을 식별하기 위한 128bytes의 영역이다. 이 LSIA를 가지는 논리 화면이 반드시 먼저 오픈되어 있어야 한다.

    PFNi

    스크롤 키를 해제/재설정하는 경우에 해당 PF키 번호를 지정한다.

    지정할 수 있는 번호는 다음과 같다.

    • PF7 또는 PF19 : 윗 방향 스크롤 키

    • PF8 또는 PF20 : 아랫 방향 스크롤 키

    • PF10 또는 PF22 : 오른쪽 방향 스크롤 키

    • PF11 또는 PF23 : 왼쪽 방향 스크롤 키

    PFNi는 생략이 가능하며 생략하는 경우에는 8개의 스크롤 키 모두를 지정한 것과 같이 동작한다.

    RCA

    IPFPFF/IPFPFS를 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.

9. IPFRIO

IPFMIO/IPFMTO가 호출된 후 동일한 화면의 입출력을 실시하는 경우 사용한다. 동일 화면에 대한 입출력 처리이므로 IPFMIO/IPFMTO를 사용하는 것보다 효율적이다.

  • 사용법

    IPFRIO의 사용 형식은 다음과 같다.

    CALL IPFRIO
         LSIA
         MDA
         [N PMA]
         [CSA]
         RCA

    다음은 IPFRIO의 파라미터에 대한 설명이다.

    항목 설명

    LSIA

    액세스할 논리 화면을 식별하기 위한 128bytes의 영역이다.

    LSIA를 가지는 논리 화면이 반드시 먼저 오픈되어 있어야 하며 IPFMIO/IPFMTO에서 지정된 LSIA와 같아야 한다.

    MDA

    메뉴 정의체의 파라미터 지정에 대응해 실제로 전송되는 출력 데이터가 저장되는 영역이다.

    N

    속성이 변경되는 파라미터 영역(PMA)의 개수이다. 0인 경우 PMA 값은 무시된다. (PMA와 함께 생략 가능)

    PMA

    파라미터 필드 속성을 일시적으로 변경하기 위해 사용되는 4 x Nbyte의 영역이다. 자세한 내용은 IPFMIO를 참고한다.

    CSA

    커서의 위치를 설정하는 4bytes의 영역이다. 자세한 내용은 IPFMIO를 참고한다.

    RCA

    IPFRIO를 실행한 후 리턴 코드가 설정되는 4bytes의 영역이다.