順次Producerオペレータ用のInitiate、Execute、およびTerminate関数をインプリメントする場合には、以下のプロセス ガイドラインを利用します。
順次Producerオペレータのインプリメント関数 |
プロセス |
Initiate |
- Get Attribute関数を使って、シーケンシャル ファイルのパス名を取得する。
- このパス名を使ってファイルを開き、ファイル ハンドルを取得する。
- Allocate Storage関数を使って、ユーザー域を割り振る。
- ユーザー域にファイル ハンドルを保存する。
- Allocate Storage関数を使って、シーケンシャル ファイル内の最大サイズの行を保持できるデータ バッファ域を割り振る。
- ユーザー域に、データ バッファ アドレスとバッファ長を保存する。
- Put Attribute関数を使って、ユーザー域を保存する。
|
Execute |
- 出力テーブル ハンドルを取得する。
- Get Attribute関数を使って、ユーザー域を取得する。
- ユーザー域から、ファイル ハンドルとデータ バッファ アドレスを取得する。
- ファイル ハンドルを使って、データ バッファに次の行を読み取る。
- Get Table Schema List関数を使って、出力データ スキーマを取得する。
- 読取りに成功した場合は、Put Row関数を使ってその行を出力データ ストリームに書き込み、PXSTC_SamePhaseステータスを返す。
- 読取り/書込みに失敗した場合は、不良ステータスを返す。
- ファイルの終わりに遭遇した場合は、PXSTC_EndOfDataまたはPXSTC_EndMethodステータスを返す。
|
Terminate |
- Get Attribute関数を使って、ユーザー域を取得する。
- ユーザー域からファイル ハンドルを取得する。
- ファイル ハンドルを使って、シーケンシャル ファイルを閉じる。
- Free Storage関数を使って、データ バッファを解放する。
- Free Storage関数を使って、ユーザー域を解放する。
|