IPFのサブルーチン
本章では、IPFサブルーチンの動作およびアプリケーション・プログラムとのインターフェース形式について説明します。
1. 概要
IPFには、アプリケーション・プログラムからTSOコマンドを呼び出す機能とアプリケーション・プログラムから画面にデータの入出力を処理する機能があります。
以下は、OpenFrameが提供するIPFのサブルーチンです。
サブルーチン | 説明 |
---|---|
アプリケーション・プログラムからTSOコマンドを呼び出します。 |
|
論理画面を終了します。 |
|
メニュー定義体を利用して画面の入出力処理を行います。 |
|
IPFMIO/IPFMTOが呼び出された後、メッセージを出力します。日本語に対応します。 |
|
メニュー定義体を利用して画面の出力処理を行います。 |
|
論理画面を開きます。 |
|
画面移動のために予約されているファンクション・キーを解除または再設定します。 |
|
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バイトの領域です。