8.11.3 UOCの処理概要
UOCの処理概要を次の図に示します。
[説明]
pdrorgからUOCに制御が渡り,処理を開始します。処理が終了したら,pdrorgに制御を返します。
-
UOCインタフェース領域の,pdrorgが設定した呼び出し種別を判定します。
-
初期化処理,UOCデータファイルのオープンなど,開始処理をします。
-
UOCインタフェース領域の,pdrorgが設定したデータを更新又は編集します。
-
データがすべてなくなった場合に,UOCデータファイルのクローズなどの終了処理をします。
-
pdrorgの処理でエラーとなった場合,又はUOC内でエラーとなった場合に,UOCデータファイルのクローズ,不要なUOCデータファイルの削除など,終了処理をします。
-
行データをチェックして,必要なデータかどうかを判定します。必要な場合は,データの更新又は編集をして,UOCインタフェース領域の格納フラグにYを設定します。必要でない場合は,UOCインタフェース領域の格納フラグにNを設定します。また,UOCでUOCデータファイルを作成する場合は,データを更新又は編集した行データをUOCデータファイルへ出力します。
-
UOCインタフェース領域のリターンコードを設定します。
また,pdrorg,UOC間の呼び出しシーケンスを次の図に示します。
[説明]
スキーマ単位の再編成,又はスキーマ単位のアンロードの場合は,スキーマ内の表数分1〜11を繰り返します。なお,該当する表の処理中にエラーが発生した場合は,直ちにpdrorgの処理を中断します。
-
pdrorgは,呼び出し種別に開始要求を設定してUOCを呼び出します。
-
pdrorgからの呼び出し種別が開始要求の場合,UOCは次の処理をします。
-
UOCでUOCデータファイルを出力する場合は,UOCデータファイルを作成(オープン)します。
-
各種領域の確保など,開始準備をします。
-
開始準備が正常に終了した場合はUOCインタフェース領域のリターンコードに0を設定し,正常に終了しなかった場合は8を設定してリターンします。
リターンコードに8を設定した場合,この呼び出し以降はUOCを呼び出せない(停止要求をしない)ため,ここでUOCデータファイルのクローズなどの後処理をする必要があります。
-
-
pdrorgは,UOCから返却されたUOCインタフェース領域のリターンコードを判定し,0又は4以外の場合は直ちにpdrorgの処理を中断します。
-
pdrorgは,データベースからデータを検索します。
-
pdrorgは,表のデータが検索できた場合は,データアドレスリストに検索したデータを設定し,呼び出し種別にデータ更新要求を設定してUOCを呼び出します。検索するデータがなくなった場合は10の処理(終了処理)をします。
なお,データ更新要求は,次の条件のどれかに該当するまで処理を繰り返します。
-
表のデータがなくなる。
-
UOCがUOCインタフェース領域のリターンコードに0又は4以外を設定する。
-
pdrorg内で処理エラーが発生する。
-
-
pdrorgからの呼び出し種別がデータ更新要求の場合,UOCは次の処理をします。
各処理が正常終了した場合はUOCインタフェース領域のリターンコードに0を設定し,異常終了した場合は8を設定してリターンします。
- (a) 表の再編成,表のアンロードでの不要データの削除の場合
-
pdrorgがUOCインタフェース領域のデータアドレスリストに渡したデータを参照し,データが必要であればUOCインタフェース領域の格納フラグにYを設定します。データが不要な場合はNを設定します。
- (b) アプリケーション向けデータ更新の場合
-
データの更新などの処理をします。
データを更新した場合は,UOCインタフェース領域に更新後データアドレスリストを設定し,格納フラグにYを設定します。
不要なデータの場合は,UOCインタフェース領域の格納フラグにNを設定します。
UOCデータファイルを出力する場合は,UOCデータファイルに必要なデータを出力します。
-
UOCから返却されたUOCインタフェース領域のリターンコードが8の場合,pdrorgは呼び出し種別に停止要求を設定してUOCを呼び出します。
-
pdrorgからの呼び出し種別が停止要求の場合,UOCは終了処理をします。なお,この呼び出し以降はUOCを呼び出せません。
-
UOCデータファイルを作成した場合は,UOCデータファイルをクローズしてください。なお,作成したUOCデータファイルが不要な場合は,ここで削除してください。
-
確保したメモリの解放などをしてください。
-
-
pdrorgがアンロードデータファイルを出力する場合,UOCインタフェース領域の格納フラグがYのときは,データをアンロードデータファイルに出力します。Nのときは出力しません。なお,データ更新(-Wオプション指定)では,UOCインタフェース領域の更新後データアドレスリストを参照して,UOCが更新したデータを-Wオプション指定のフォーマットでアンロードデータファイルに出力します。
-
次の条件をすべて満たす場合,pdrorgは呼び出し種別に終了要求を設定してUOCを呼び出します。
-
該当する表のデータをすべて検索した場合
-
pdrorg内でエラーが発生しなかった場合
-
UOCから返却されたUOCインタフェース領域のリターンコードがすべて正常(0又は4)の場合
-
-
pdrorgからの呼び出し種別が終了要求の場合,UOCは終了処理をします。
-
UOCデータファイルを作成した場合は,UOCデータファイルをクローズしてください。
-
確保したメモリの解放などをしてください。
-