9.181 RESTORE_SAVED_LIST
注意: 9.1 組み込み関数の規則 利用オプション
保存済みの永久作業リストまたは一時作業リストの内容を復元します。
可搬性に関する注意事項 | RESTORE_SAVED_LISTとSAVE_LISTは、同じコンテキスト内で使用する必要があります。つまり、Web上で実行されたファンクションからSAVE_LISTを使用し、その後でVisual LANSAファンクションとして実行されたファンクションから保存済みリストを復元しないでください。 |
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 復元する保存済みリストの名前 | 1 | 10 |
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | L | 必須 | 保存済みリストをロード/復元する作業リスト | 1 | 10 | ||
2 | A | 任意 | 戻りコード 'OK' - リストが取得された | 2 | 2 | ||
3 | N | 任意 | 各リスト・エントリーの長さ | 1 | 15 | 0 | 0 |
4 | A | 任意 | リストのタイプ 'P' - 永久リスト | 1 | 1 |
技術上の注記
- この組み込み関数は、保存済み作業リストを復元する目的、またはジョブ間(例:インターラクティブからバッチ)で受け渡される作業リストの内容を取得する目的で作られています。同一ジョブ内でプログラムの作業リストの詳細を取得することが目的ではありません。FUNCTIONコマンドとCALLコマンドのRCV_LISTSパラメータとPASS_LISTSパラメータを使用すると、より効率的に同じジョブのプログラム間で作業リストの詳細を交換することができます。
- LANSAデータ・ライブラリにあるDC@F80ファイルで保存済みリストの詳細が保管されています。バックアップと復元の手順には、このファイルを含めることを検討する必要があります。
- 復元先のリストは、保存済みリストと同じかまたは大きなサイズにする必要があります。そうでない場合は保存済みの情報が復元されません。この場合、戻りコード'OV'と空のリストが戻されます。
- 通常のLANSA内部データベース再編成の際に、DC@F80ファイルの削除されたレコードのスペースは再編成され除去されます。この再編成により、保持期間が超えている一時リストも削除されます。
- IBM i RGZPFM(Reorganize Physical File Member:物理ファイル・メンバーの再編成)コマンドを使えば、DC@F80ファイルの削除されたレコードのスペースはいつでも解放することができます。順次論理ビューにはDC@F80V1を使用します。
- DC@A08データ・エリア、DC@F80データベース・ファイル(およびその論理ビューであるDCF80V2)のバックアップと復元は、お客様の責任のもと、実行してください。
- DC@F80、つまり保存済みリストをコンピュータ間または環境間で移動する場合は、お客様の責任で実行してください。
例
あるリストが保存されています。これは顧客リストで、ユーザーがレポート印刷のためすでに顧客を選択済みです。投入元のジョブにより、このジョブにはすでにリスト名が渡されています。
DEF_LIST NAME(#RSTLST) FIELDS((#CLICDE) (#CLIDES)) TYPE(*WORKING)
DEF_LINE NAME(#LINE1) FIELDS((#CLICDE) (#CLIDES) (#CLIAD1) (#CLIAD2) (#CLIAD3) (#CLIPHO) (#CLIFAX))
DEFINE FIELD(#LSTNME) TYPE(*CHAR) LENGTH(10)
********** Clear the list
CLR_LIST NAMED(#RSTLST)
********** Restore the list
USE BUILTIN(RESTORE_SAVED_LIST) WITH_ARGS(#LSTNME) TO_GET(#RSTLST)
********** Process the list
SELECTLIST NAMED(#RSTLST)
FETCH FIELDS(#LINE1) FROM_FILE(CLIMASTER) WITH_KEY(#CLICDE)
PRINT LINE(#LINE1)
ENDSELECT
********** Close print file
ENDPRINT
********** Submit job to delete list
USE BUILTIN(DELETE_SAVED_LIST) WITH_ARGS(#LSTNME)