9.185 SAVE_LIST
注意: 9.1 組み込み関数の規則 利用オプション
作業リストの内容を永久または一時的に保存します。
可搬性に関する注意事項
|
SAVE_LIST とRESTORE_SAVED_LISTは、同じコンテキストで使用する必要があります。つまり、Web上で実行されたファンクションから SAVE_LISTを使用し、その後でVisual LANSAファンクションとして実行されたファンクションから保存済みリストを復元しないでください。
|
引数
番号
|
タイプ
|
必須/任意
|
記述
|
最小長
|
最大長
|
最小小数桁数
|
最大小数桁数
|
1
|
L
|
必須
|
保存する作業リスト
|
1
|
10
|
|
|
2
|
N
|
必須
|
各リスト・エントリーの長さ(つまり、エントリー内のすべてのフィールドの合計長)。Packedフィールドの場合、(SIZE/2)+1が許可されています。
このパラメータはRDMLXリストでは無視されます。どの値でも指定できます。リスト・エントリーの長さにかかわらず、正しく保管されます。
|
1
|
15
|
0
|
0
|
3
|
A
|
任意
|
リストのタイプ
'P' - 永久リスト 'T' - 一時リスト
指定しない場合、一時リストとみなされます。
|
1
|
1
|
|
|
4
|
N
|
任意
|
一時的に保存されるリストの保管期間(日数)
1 から90までの値だけを使用してください。指定しない場合、一時リストに対してデフォルト7が使用されます。
|
1
|
2
|
0
|
0
|
5
|
A
|
任意
|
保存するリストの名前。この引数が指定されない場合、または引数がブランクとして渡された場合、固有のリスト名が自動的に割り当てられます。
|
10
|
10
|
|
|
|
戻り値
番号
|
タイプ
|
必須/任意
|
記述
|
最小長
|
最大長
|
最小小数桁数
|
最大小数桁数
|
1
|
A
|
必須
|
戻された保存済みリストの名前
|
10
|
10
|
|
|
|
技術上の注記
- この組み込み関数は、作業リストを永久に保存する、またはジョブ間(例:対話型からバッチへ)で作業リストの内容を渡すために使用します。同じジョブのプログラム間で作業リストの詳細を交換するためのものではありません。FUNCTIONコマンドとCALLコマンドのRCV_LISTSパラメータとPASS_LISTSパラメータを使用すると、より効率的に同じジョブのプログラム間で作業リストの詳細を交換することができます。
- 自動的に割り当てられるリスト名は、LANSAデータ・ライブラリのデータ・エリアDC@A08から割り当てられます。システム復元状況では、このデータ・エリアの値も同様に復元され、ファイルDC@F80に見つかった最大値を持つレコードよりも大きい数値であるかどうかが検査されます。
- リスト名の自動割り当て手順によってデータ・エリアDC@A08がロックされ、検索されます。その後、その値が1つ増やされ、増分された値がそのデータ・エリアに戻されます。最後にロックが解除されます。データ・エリアには9桁の数字があり、割り当てられた9桁の数字に現在の区画の固有の接頭辞が追加され、10文字のリスト名が作成されます。
- リスト名の自動割り当てロジックにより、実行中の複数のIBM i タスクに同じ名前が割り当てられないようにできます。ただし、手動で割り当てられたリスト名を使用している場合、回避できない可能性があります。例えば、2つのIBM i タスクが、'TESTLIST'という手動で割り当てられた名前でリストを保管しようとすると、予期しない結果になる可能性があります。
- LANSA データ・ライブラリにあるDC@F80ファイルで保存済みリストの詳細が保管されています。バックアップと復元の手順には、このファイルを含めることを検討する必要があります。
- 通常のLANSA内部データベース再編成の際に、DC@F80ファイルの削除されたレコードのスペースは再編成され除去されます。この再編成により、保持期間が超えている一時リストも削除されます。
- IBM i のRGZPFM (Reorganize Physical File Member:物理ファイル・メンバーの再編成)コマンドを使用すれば、いつでもファイルDC@F80を再編成して、削除されたレコードのスペースを解放できます。順次論理ビューにはDC@F80V1を使用します。
- 一時リストが保管期間を超過し、次の内部再編成中に自動的に削除されるのを待つのではなく、DELETE_SAVED_LIST組み込み関数を使用することによって一時リストを指定して削除することをお勧めします。
- DC@A08 データ・エリア、DC@F80データベース・ファイル(およびその論理ビューであるDC@F80V1とDC@F80V2)のバックアップと復元は、お客様の責任で実行してください。
- DC@F80、つまり保存済みリストをコンピュータ間または環境間で移動する場合は、お客様の責任で実行してください。
例
リストがユーザーに対して表示されます。ユーザーはリストからエントリーを選択し、プリンターに出力することができます。選択したエントリーのリストを保存することによって、出力を作成するために後から印刷ジョブによってこのリストを復元することができます。
DEF_LIST NAME(#CLIENTS) FIELDS((#SELECTOR *SEL) #CLICDE #CLIDES)
DEF_LIST NAME(#SAVLST) FIELDS(#CLICDE #CLIDES) TYPE(*WORKING)
DEFINE FIELD(#LSTNME) TYPE(*CHAR) LENGTH(10)
********** Clear the list
CLR_LIST NAMED(#CLIENTS)
CLR_LIST NAMED(#SAVLST)
********** Build the browselist
SELECT FIELDS(#CLIENTS) FROM_FILE(CLIMASTER)
ADD_ENTRY TO_LIST(#CLIENTS)
ENDSELECT
********** Allow user to select clients for print
DISPLAY BROWSELIST(#CLIENTS)
SELECTLIST NAMED(#CLIENTS) GET_ENTRYS(*SELECT)
ADD_ENTRY TO_LIST(#SAVLST)
ENDSELECT
********** Save the list
USE BUILTIN(SAVE_LIST) WITH_ARGS(#SAVLST 50 T 10) TO_GET(#LSTNME)
********** Submit job to print client information
SUBMIT PROCESS(PRINTS) FUNCTION(CLIENTS) EXCHANGE(#LSTNME)