IMS 印刷出口

IMS 印刷出口機能では、この機能を使用しなければプリンターに送信されるデータを DFSPRINT 出口ルーチンにリダイレクトできます。

呼び出し
印刷出口は実行時に呼び出されます。
コーディング要件
印刷出口を有効にするには、DFSPRINT という名前の出口プログラムをコーディングし、さらに IMS COBOL プログラムから DFSPRINT へのインターフェイスをコーディングする必要があります。
DFSPRINT
印刷出口機能を有効にするには、DFSPRINT という名前のモジュールをコーディングしてビルドし、その結果として生成される実行可能ファイルを ES_IMS_EXITPATH 環境変数で指定されたディレクトリに格納する必要があります。Micro Focus では、参考用に非常に基本的な DFSPRINT.cbl ファイルを用意しています。DFSPRINT.cbl は、デフォルトでは %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\exits ディレクトリにあります。
重要: DFSPRINT 印刷出口ルーチンはスレッドセーフでなければなりません。
インターフェイス
DFSPRINT プログラムの連絡節に次のインターフェイスを組み込みます。このインターフェイスの内容は DFSPRINT モジュールに送信されます。
01 print-exit-interface.
   03 data-destination     pic x(8).
   03 data-pending         pic x comp-x.
      88 more-to-come-88   value 1 false 0.
   03 page-count           pic x(4) comp-5.
   03 page-array-ptr       pointer.
01 page-array.
   03 page-data occurs 50 times depending on page-count.
      05 page-data-ptr     pointer.
      05 page-data-length  pic x(4) comp-5.
フィールド 内容
data-destination 出力先のプリンターの名前
more-to-come-88 この印刷ジョブに対するデータがさらにある場合に true
page-count page-array-ptr が指す配列内のページ数
page-array-ptr 印刷データを含むページ配列構造体へのポインター
page-data-ptr 単一ページの TN3270 データへのポインター
page-data-length page-data-ptr が指すデータの長さ
ランタイム要件
印刷出口機能を有効にするには、次のものを用意する必要があります。
DFSPRINT 実行可能ファイル
DFSPRINT 実行可能ファイルは、ES_IMS_EXITPATH 環境変数で指定されたディレクトリに格納する必要があります。
Enterprise Server 環境変数
IMS アプリケーションを実行するエンタープライズ サーバー リージョンで、次の環境変数を設定する必要があります。
ES_IMS_EXITPATH
DFSPRINT 実行可能ファイルを含むディレクトリをポイントするように設定します。
ES_IMS_OTMA_DEST
印刷データを出口ルーチンにリダイレクトするアプリケーションで指定されている各出力先を識別するように ES_IMS_OTMA_DEST 環境変数を設定します。出力先として、出力先の名前、キーワード NONOTMA、および LU タイプ (LU1 または LU3) をカンマで区切ってそれぞれ指定します。各出力先の定義はセミコロンで区切ります。
IMS_OTMA_DEST=printerName,NONOTMA,LUtype[;...]

ES_IMS_OTMA_DEST 環境変数の各エントリはセミコロンで区切ります。各エントリでは、出力先の名前、キーワード NONOTMA、および LU タイプ (LU1 または LU3) をカンマで区切って指定します。次に例を示します。

ES_IMS_OTMA_DEST=IMSPRLU1,NONOTMA,LU1;IMSPRLU3,NONOTMA,LU3

最初の出力先として IMSPRLU1 という名前の LU1 プリンターを指定し、2 番目の出力先として IMSPRLU3 という名前の LU3 プリンターを指定しています。

ランタイム動作
印刷出口ルーチンが存在する場合の想定されるランタイム動作は次のとおりです。
  • IMS は印刷を開始する前にルーチンを呼び出します。印刷データが TN3270 データ ストリームとして出口ルーチンに送られます。
  • DFSPRINT は印刷データを処理すると、戻りコード フィールドに戻りコード 0 (ゼロ) を割り当てて終了します。
  • IMS は出口ルーチンから戻りコード 0 を受け取ると、通常の印刷処理をバイパスします。
  • IMS は出口ルーチンからゼロ以外の戻りコードを受け取ると、通常どおりに印刷を処理します。