再ロードプログラムの開発 

再ロードプログラムは、データベースに再ロードする必要のあるアーカイブデータが属するアーカイブオブジェクトに提供されなければなりません。完了したアーカイブセッションのアーカイブデータは、常にこのプログラムによって処理される必要があります。

ADK 汎用モジュールは、この目的のためにも使用することができます。これらの汎用モジュールにより、データオブジェクトを選択して再ロードすることができます。再ロードされないデータオブジェクトは、新しいアーカイブファイルに保存されます。

再ロードプログラムの作成は、きわめて慎重に行う必要があります。これは再ロードされたデータオブジェクトが、アーカイブ管理からアクセスすることができなくなるからです。オブジェクトのアーカイブが重複することを防ぎ、 R/3 システムが修正可能であることを保証することがその目的です。

ADK は、再ロード時に新たにアーカイブファイルを登録します。ファイルには再ロードされなかったデータオブジェクトをコピーする必要があります。古いアーカイブファイルは保持されますが、 アーカイブ管理からのアクセスができなくなるため、再ロードされたデータは再びアーカイブする必要があります。

汎用モジュールの呼び出し順序

1. 再ロードのオープン - ARCHIVE_OPEN_FOR_MOVE
この汎用モジュールによって、次の2つのハンドルが渡されます。

ARCHIVE_READ_HANDLE
このハンドルは、汎用モジュール ARCHIVE_OPEN_FOR_READ が戻すハンドルに対応するものです。これによって、すべての読み込み操作を実行できます。

ARCHIVE_WRITE_HANDLE
このハンドルで、データベースに書き戻されないデータオブジェクトを、新しいアーカイブに書き込むことができます。このハンドルによって呼び出すことができるのは、汎用モジュール ARCHIVE_SAVE_OBJECT だけです。

この汎用モジュールは、以下のタスクを実行します。

− 読み込みのため、既存のアーカイブをオープン

− 書きみ込のため、新しいアーカイブをオープン

− アーカイブ管理へのヘッダエントリの書き込み

− 現在アーカイブのアーカイブクラスのインクルード

汎用モジュール ARCHIVE_GET_CUSTOMIZING_DATA を使用して、削除プログラムについて使用するのと同じコミットカウンタを再ロードプログラムに使用できます。

2つの汎用モジュールが呼び出されるのは、再ロードプログラムの起動時、一度だけです。

ステップ 2. および 3. は、すべてのアーカイブデータオブジェクトについてループ中で呼び出す必要があります。

2. アーカイブファイルからのアーカイブデータオブジェクトの読み込み - ARCHIVE_GET_NEXT_OBJECT
この汎用モジュールによって、すべてのアーカイブ読み込みアクセスに対して次のアーカイブデータオブジェクトを読み込みます。この作業には、 ARCHIVE_READ_HANDLE を使用してください。この汎用モジュールは、以下のタスクを実行します。

− アーカイブファイルからのアーカイブデータオブジェクトの読み込

− データパケットをともなうアーカイブクラスの供給

− 標準クラスへのデータコンテナの提供

WRITE_HANDLE データコンテナへのアーカイブデータオブジェクトのパス

この汎用モジュールは、アーカイブファイルがデータオブジェクトを提供できなくなるまで、ループ内で呼び出される必要があります。

3. アーカイブデータのデータベースへの再ロード
ARCHIVE_GET_NEXT_OBJECT によって読み込まれた最後のデータオブジェクトの、すべてのアーカイブクラスのデータは、汎用モジュール ARCHIVE_RELOAD_OBJECT_DATA によってデータベースに再ロードされます。したがって、再ロードプログラムでこの汎用モジュールを呼び出す必要があるのは、( ARCHIVE_GET_NEXT_OBJECT による)各データオブジェクトの読み込みについて一度だけです。
データベースへの標準クラスデータの再ロードは、ユーザがプログラムする必要があります。

最後に読み込まれたデータオブジェクトが再ロードされない場合は、 ARCHIVE_SAVE_OBJECT によって、そのデータオブジェクトを新しいアーカイブファイルに転送してください。転送しないと、アーカイブ管理による古いアーカイブファイルへのアクセスができないため、データが失われることになります。

すべてのアーカイブファイルデータオブジェクトの処理が終わったら、この呼び出し(ステップ 3 )でループを終了してください。

4. 再ロード終了 - ARCHIVE_CLOSE_FILE
この汎用モジュールは再ロード手順を終了します。この汎用モジュールは、以下のタスクを実行します。

− アーカイブファイルのクローズ

− アーカイブ管理レコードの更新

− インクルードされたアーカイブクラスの解放

− 現在ハンドルの破棄

この呼び出しによって渡す必要があるのは、2つのハンドルのうちの1つだけです。アーカイブオブジェクトは、所属する2番目のハンドルを自動的に認識します。