バージョン 8.1.3
 —  ユーティリティ  —

ADACDC ユーザー出口

ADACDC では、処理のさまざまなポイントでユーザー出口を呼び出し、ユーザーに処理中断の機会を提供します。

このドキュメントでは、次のトピックについて説明します。


ユーザー出口のインストール

Start of instruction setユーザー出口のインストール手順は次のとおりです。

  1. ADACDC で使用するユーザー出口をコンパイルして、モジュール名を ADACDCUX とします。

  2. 上記のモジュールを ADACDC で使用できるようにします。

サンプルのユーザー出口 ADACDCUX がソースデータセットに用意されています。 このサンプルは、ユーザー出口インターフェイスを使用したレコードの追加、削除、更新方法のみを示しています。

Top of page

ユーザー出口インターフェイス

ユーザー出口をコールするには、レジスタを次のように設定してください。

R1 ユーザーパラメータリスト
R13 72 バイトの標準レジスタセーブエリア
R14 リターンアドレス
R15 エントリポイント

ユーザーパラメータリストには、次の 2 つのポインタが含まれています。

ユーザー出口で実行するアクションは、CDCUFUNC で指定します。一方、ユーザー出口が ADACDC に対して命令するリターン時のアクションは、CDCURESP フィールドで指定します。

graphics/cdc2_standard0.png

ADACDC ユーザー出口

ADACDC ユーザー出口インターフェイスコントロールブロック(CDCU DSECT)の構造は、次のとおりです。

バイト 説明
0~3 定数 'CDCU'
4~7 ユーザー出口が使用する
8~11 第 2 パラメータ内のレコード長
12
機能 ID:  
X'00' 初期化
X'04' SORT 入力に渡す前
X'08' 抽出ファイルに書き込む前
X'0C' プライマリ出力ファイルに書き込む前
X'10' 終了
13
ユーザー出口からのレスポンスコード:
X'00' 正常処理
X'04' レコードの無視
X'08' レコードの更新済み
X'0C' 新規レコードの挿入
14~31 予約済み(将来的に使用される予定)

Top of page

ユーザー出口呼び出し

ユーザー出口の各種呼び出しとその目的について説明します。

初期化呼び出し(CDCUFUNC=CDCUINIT)

ADACDC では、初期化中に、その後の処理で必要となるエリアの設定を行うためにユーザー出口を呼び出します。 ユーザーコントロールブロックにリンクする必要がある場合は、CDCU 内に CDCUUSER フィールドが提供されます。

レコードエリアポインタが指すデータは、この呼び出しには関係ありません。

終了呼び出し(CDCUFUNC=CDCUTERM)

ADACDC では、終了処理中に、オープンしているファイルをクローズしたり ADACDC 実行後も保持されているエリアを解放するためにユーザー出口を呼び出します。 例えば、CDCUUSER にリンクポインタが設定されている場合に、このエリアを解放して CDCUUSER フィールドを空値に設定します。

レコードエリアポインタが指すデータは、この呼び出しには関係ありません。

SORT 入力呼び出し(CDCUFUNC=CDCUINPT)

ADACDC は、レコードを SORT ルーチンに入力として引き渡す前に、ユーザー出口を呼び出します。

レコードエリアポインタは、ユーザー出口によって返される圧縮データレコードをポイントします。圧縮データレコードには、CDCE コントロールブロックによって接頭辞が付けられます。

ユーザー出口は次の中から選択できます。

抽出出力呼び出し(CDCUFUNC=CDCUWRTE)

ADACDC は、フェーズ 1 の処理中にレコードを抽出ファイルに書き込む前に、ユーザー出口を呼び出します。 この出口は、フェーズ 1 の処理中にのみ呼び出され、他の場合とは関係ありません。

レコードエリアポインタは、書き込まれる圧縮データレコードをポイントします。圧縮データレコードには、CDCE コントロールブロックによって接頭辞が付けられます。

ユーザー出口は次の中から選択できます。

プライマリ出力呼び出し(CDCUFUNC=CDCUWRTO)

ADACDC は、レコードをプライマリ出力ファイルに書き込む前に、ユーザー出口を呼び出します。 この出口は、フェーズ 1 の処理中は呼び出されません

レコードエリアポインタは、書き込まれる非圧縮データレコードをポイントします。非圧縮データレコードには、CDCO コントロールブロックによって接頭辞が付けられます。

ユーザー出口は次の中から選択できます。

レコードの更新または追加

出口からのレコードを更新または追加するときは、次の点を考慮してください。

Top of page