IPFのサブルーチン

本章では、IPFサブルーチンの動作およびアプリケーション・プログラムとのインターフェース形式について説明します。

1. 概要

IPFには、アプリケーション・プログラムからTSOコマンドを呼び出す機能とアプリケーション・プログラムから画面にデータの入出力を処理する機能があります。

以下は、OpenFrameが提供するIPFのサブルーチンです。

サブルーチン 説明

IPFCMD

アプリケーション・プログラムからTSOコマンドを呼び出します。

IPFCVS

論理画面を終了します。

IPFMIO

メニュー定義体を利用して画面の入出力処理を行います。

IPFMRR

IPFMIO/IPFMTOが呼び出された後、メッセージを出力します。日本語に対応します。

IPFMTO

メニュー定義体を利用して画面の出力処理を行います。

IPFOVS/IPFOPN

論理画面を開きます。

IPFPFF/IPFPFS

画面移動のために予約されているファンクション・キーを解除または再設定します。

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コマンドを呼び出します。

  • 構文

    CALL IPFCMD
         RC1
         RC2
         CMD
         L

    以下は、IPFCMDのパラメータについての説明です。

    項目 説明

    RC1

    IPFCMDのリターンコードを設定する4バイトの領域です。

    RC2

    TSOコマンドのリターンコードを設定する4バイトの領域です。

    CMD

    TSOコマンドを記述するLバイトの文字領域です。

    L

    CMDの長さを設定する領域です。(最大長: 32760)

3. IPFCVS

論理画面を終了します。同サブルーチンが呼び出された後には、画面入出力はできません。

  • 構文

    CALL IPFCVS
         LSIA
         RCA

    以下は、IPFCVSのパラメータについての説明です。

    項目 説明

    LSIA

    終了する論理画面を識別ための128バイトの領域です。

    IPFOVS/IPFOPNで開くときに指定したLSIAと同じである必要があります。

    RCA

    IPFCVSを実行した後、リターンコードが設定される4バイトの領域です。

4. IPFMIO

区分データセット(PDS)にメンバーとして登録されたメニュー定義体を利用して、画面の入出力処理を行います。

  • 構文

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

    以下は、IPFMIOのパラメータについての説明です。

    項目 説明

    LSIA

    アクセスする論議画面を識別するための128バイトの領域です。

    LSIAを有する論理画面が先に開かれている必要があります。

    MIA

    メニューを識別するための16バイトの領域です。

    DD名の8バイトとメンバー名の8バイトで区分されます。

    • DD名 : 使用するメニュー定義体をメンバーとして有するデータセットのDD名を指定します。

    • メンバー名 : 使用するメニュー定義体のメンバー名を指定します。

    MDA

    メニュー定義体のパラメータ指定に対応して実際に転送される入出力データが保存される領域です。

    N

    属性が変更されるパラメータ領域(PMA)の数です。ゼロの場合、PMAの値は無視されます。(PMAと一緒に省略可能)

    PMA

    パラメータ・フィールドの属性を一時的に変更するために使用される4×Nバイトの領域です。

    以下のように3つの領域で構成されます。(Nと一緒に省略可能)

    • パラメータ番号(PNO) : 変更するアクション・パラメータ番号を指定する2バイトの領域です。

    • 属性文字(ATTR) : 新しく与える属性を指定する1バイトの領域です。

    • 変更通知文字(M) : OpenFrameではサポートしていません。

    CSA

    カーソルの位置を設定する4バイトの領域です。

    以下のように2つの領域で構成されます。(省略可能)

    • CSA1 : カーソルを位置させるパラメータ番号を2バイトで設定します。

    • CSA2 : 指定したパラメータ内の先頭からの位置を2バイトで設定します。

    RCA

    IPFMIOを実行した後、リターンコードが設定される4バイトの領域です。

5. IPFMRR

IPFMIO/IPFMTOが呼び出された後、メッセージを出力するために使用されます。日本語のメッセージも出力可能です。

  • 構文

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

    以下は、IPFMRRのパラメータについての説明です。

    項目 説明

    LSIA

    アクセスする論理画面を識別するための128バイトの領域です。

    LSIAを有する論理画面が先に開かれており、IPFMIO/IPFMTOで指定されたLSIAと同じである必要があります。

    MA

    メッセージとして出力するデータを含んでいる領域です。日本語のデータも使用可能です。

    MPA

    メッセージを出力する論理画面上の行の位置を指定します。

    MDA

    メニュー定義体のパラメータ指定に対応して実際に転送される出力データが保存される領域です。

    PNAi

    属性を変更するパラメータ番号を指定する2バイトの領域です。

    OpenFrameでは、エラーが発生しないように解析(Parsing)のみサポートしています。(省略可能)

    CSA

    カーソルの位置を設定する4バイトの領域です。詳細については、IPFMIOを参照してください。

    RCA

    IPFMRRを実行した後、リターンコードが設定される4バイトの領域です。

6. IPFMTO

区分データセット(PDS)にメンバーとして登録されたメニュー定義体を利用して画面上に出力処理のみを行います。IPFMIOとは違って入力値を受けず、画面を出力した後、すぐに返されます。

  • 構文

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

    以下は、IPFMTOのパラメータについての説明です。

    項目 説明

    LSIA

    アクセスする論理画面を識別するための128バイトの領域です。

    LSIAを有する論理画面が先に開かれている必要があります。

    MIA

    メニューを識別するための16バイトの領域です。

    DD名の8バイトとメンバー名のバイトで区分されます。

    • DD名 : 使用するメニュー定義体をメンバーとして有するデータセットのDD名を指定します。

    • メンバー名 : 使用するメニュー定義体のメンバー名を指定します。

    MDA

    メニュー定義体のパラメータ指定に対応して実際に転送される出力データが保存される領域です。

    N

    属性が変更されるパラメータ領域(PMA)の数です。

    ゼロの場合、PMAの値は無視されます。(PMAと一緒に省略可能)

    PMA

    パラメータ・フィールドの属性を一時的に変更するために使用される4×Nバイトの領域です。詳細については、IPFMIOを参照してください。

    CSA

    カーソルの位置を設定する4バイトの領域です。詳細については、IPFMIOを参照してください。

    RCA

    IPFMTOを実行した後、リターンコードが設定される4バイトの領域です。

7. IPFOVS/IPFOPN

論理画面を開きます。画面の入出力処理のためには、先に同サブルーチンを呼び出す必要があります。

  • 構文

    CALL IPFOVS | IPFOPN
         PIA
         LSIA
         [LSDA]
         RCA

    以下は、IPFOVS/IPFOPNのパラメータについての説明です。

    項目 説明

    PIA

    プログラムを識別するための4バイトの領域です。

    LSIA

    論理画面を識別するための128バイトの領域です。

    LSDA

    論理画面の定義領域です。論理画面の属性を指定する情報が含まれている24バイトの領域です。(省略可能)

    RCA

    IPFOVS/IPFOPNを実行した後、リターンコードが設定される4バイトの領域です。

8. IPFPFF/IPFPFS

IPFでデフォルト値として指定されているスクロール・キー(PF7、PF8、PF10、PF11、PF19、PF20、PF22、PF23)を解除(IPFPFF)するか、解除されたキーを再設定(IPFPFS)する機能です。

  • 構文

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

    以下は、IPFPFF/IPFPFSのパラメータについての説明です。

    項目 説明

    LSIA

    アクセスする論理画面を識別するための128バイトの領域です。このLSIAを有する論理画面が先に開かれている必要があります。

    PFNi

    スクロール・キーを解除または再設定する場合、該当するPFキー番号を指定します。

    指定できる番号は以下のとおりです。

    • PF7またはPF19 : 上方向スクロール・キー

    • PF8またはPF20 : 下方向スクロール・キー

    • PF10またはPF22 : 右方向スクロール・キー

    • PF11またはPF23 : 左方向スクロール・キー

    PFNiは省略可能であり、省略した場合は8つのスクロール・キーをすべて指定したのと同じ動作をします。

    RCA

    IPFPFF/IPFPFSを実行した後、リターンコードが設定される4バイトの領域です。

9. IPFRIO

IPFMIO/IPFMTOが呼び出された後、同じ画面の入出力を行う場合に使用します。同一画面に対する入出力処理であるため、IPFMIO/IPFMTOを使用するよりも効率的です。

  • 構文

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

    以下は、IPFRIOのパラメータについての説明です。

    項目 説明

    LSIA

    アクセスする論理画面を識別するための128バイトの領域です。

    LSIAを有する論理画面が先に開かれており、IPFMIO/IPFMTOで指定されたLSIAと同じである必要があります。

    MDA

    メニュー定義体のパラメータ指定に対応して実際に転送される出力データが保存される領域です。

    N

    属性が変更されるパラメータ領域(PMA)の数です。ゼロの場合、PMAの値は無視されます。(PMAと一緒に省略可能)

    PMA

    パラメータ・フィールドの属性を一時的に変更するために使用される4×Nバイトの領域です。詳細については、IPFMIOを参照してください。

    CSA

    カーソルの位置を設定する4バイトの領域です。詳細については、IPFMIOを参照してください。

    RCA

    IPFRIOを実行した後、リターンコードが設定される4バイトの領域です。