Page History
[ |../../index.htm#lansa/get_splf_list_entry.htm]
現在地:
...
9.109 GET_SPLF_LIST_ENTRY
| Note |
|---|
注意 |
...
: 9.1 |
...
この組み込み関数は、START_RTV_SPLF_LIST、END_RTV_SPLF_LISTと合わせて使用します。はじめに、START_RTV_SPLF_LISTを使用して、スプール・ファイル検索用の選択条件を提供する必要があります。指定できる選択条件は、ユーザー名、出力待ち行列名とライブラリ、フォーム・タイプ、ユーザー・データ、およびステータスです。START_RTV_SPLF_LISTを使って選択条件が確立されると、このGET_SPLF_LIST_ENTRY組み込み関数を使用してスプール・ファイルの詳細を取り込むことができます。スプール・ファイルのリストを取り込んだ後には、END_RTV_SPLF_LISTを使用する必要があります。これにより、リストをクローズして割り当てられていた記憶域を解放します。 LISTを使用する必要があります。これにより、リストをクローズして割り当てられていた記憶域を解放します。
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | N | 必須 | 開始レコード番号 START_RTV_SPLF_LISTの後に初めてこの組み込み関数を使用する場合は、1を指定する必要があります。2回目以降の呼び出しの場合は、前の呼び出しで戻された最後のレコード番号に1を加えた値を指定します。この値はゼロより大きな正数にする必要があります。 | 5 | 15 | 0 | 0 |
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | N | 必須 | 戻された最後のレコード番号 このリストで最後のレコードの番号が戻されます。この値を使って、次にこの関数を使用するときの開始レコード番号を設定できます。次の呼び出しに使用する開始レコード番号は、この値に1を加えた値です。 | 5 | 15 | 0 | 0 |
2 | L | 必須 | 取得するスプール・ファイルの詳細を含める作業リスト。呼び出し元のRDMLファンクションは、項目の長さの合計が正確に160バイトの作業リストを提供しなければなりません。 |
戻されるそれぞれのリスト項目は、次のような形式にする必要があります。 開始 - |
終了 説明 |
スプール・ファイル名 |
ジョブ名 |
ユーザー |
ジョブ番号 |
スプール・ファイル番号 |
総ページ数 |
現在のページ |
印刷待ち部数 |
出力待ち行列名 |
出力待ち行列ライブラリ |
ユーザー・データ |
ステータス |
フォーム・タイプ |
優先順位 |
予約済み |
装置タイプ | 160 | 160 |
3 | A | 任意 | 戻りコード OK = リスト (満載または一部) |
が戻された。この選択でこれ以上のスプール・ファイルは存在しない OV = リスト (満載) |
が戻された。ただしリストに収まらなかったスプール・ファイルがさらに存在する NR = |
リストは空で戻された ER = スプール・ファイルの取得中にエラーが発生した。開始レコードは無効の場合がある | 2 | 2 |
例
PAYLIBライブラリのPAYOUTQ出力待ち行列のスプール・ファイルをすべて取得して、各スプール・ファイルに何らかの処理を実行します。 PAYLIBライブラリのPAYOUTQ出力待ち行列のスプール・ファイルをすべて取得して、各スプール・ファイルに何らかの処理を実行します。
*********
...
Define arguments and lists
DEFINE FIELD(#RETURN)
...
TYPE(*CHAR)
...
LENGTH(2)
...
**********
...
DEFINE FIELD(#SPLF)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#JOB)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#USER)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#JOBNO)
...
TYPE(*CHAR)
...
LENGTH(6)
...
DEFINE FIELD(#SPLFNO)
...
TYPE(*CHAR)
...
LENGTH(4)
...
DEFINE FIELD(#TOTPAGE)
...
TYPE(*DEC)
...
LENGTH(7)
...
DECIMALS(0)
...
DEFINE FIELD(#CURPAGE)
...
TYPE(*DEC)
...
LENGTH(7)
...
DECIMALS(0)
...
DEFINE FIELD(#COPIES)
...
TYPE(*DEC)
...
LENGTH(7)
...
DECIMALS(0)
...
DEFINE FIELD(#OUTQ)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#OUTQL)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#USERDATA)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#STATUS)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#FORM)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#PRTY)
...
TYPE(*CHAR)
...
LENGTH(2)
...
DEFINE FIELD(#RESV1)
...
TYPE(*CHAR)
...
LENGTH(32)
...
DEFINE FIELD(#DEVICE)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#RESV2)
...
TYPE(*CHAR)
...
LENGTH(14)
...
**********
...
DEFINE FIELD(#START)
...
TYPE(*DEC)
...
LENGTH(7)
...
DECIMALS(0)
...
DEFAULT(0)
...
DEFINE FIELD(#LASTREC)
...
TYPE(*DEC)
...
LENGTH(7)
...
DECIMALS(0)
...
DEFAULT(0)
**********
...
DEF_
...
LIST NAME(#LIST)
...
FIELDS((#SPLF)
...
(#JOB)
...
(#USER)
...
(#JOBNO)
...
(#SPLFNO)
...
(#TOTPAGE)
...
(#CURPAGE)
...
(#COPIES)
...
(#OUTQ)
...
(#OUTQL)
...
(#USERDATA)
...
(#STATUS)
...
(#FORM)
...
(#PRTY)
...
(#RESV1)
...
(#DEVICE)
...
(#RESV2))
...
COUNTER(#LISTCOUNT)
...
TYPE(*WORKING)
**********
...
**********
...
Retrieve spool files on output Q PAYLIB/PAYOUTQ
**********
...
USE BUILTIN(START_RTV_SPLF_LIST)
...
WITH_ARGS('''*ALL'''
...
PAYOUTQ PAYLIB) TO_GET(#RETURN)
...
IF COND('
...
#RETURN =
...
OK')
...
**********
...
CLR_
...
LIST NAMED(#LIST)
...
BEGIN_LOOP
USE BUILTIN(GET_SPLF_LIST_ENTRY)
...
WITH_ARGS(#START)
...
TO_GET(
...
#LASTREC #LIST #RETURN)
IF COND('(
...
#return =
...
ER)
...
*
...
OR (
...
#return =
...
NR)')
...
LEAVE
ENDIF
SELECTLIST NAMED(#LIST)
*********
...
**********
...
At this point some processing on the spool file can
**********
...
be done.
**********
...
eg IBM i commands such as CPYSPLF DLTSPLF
**********
...
or release (RLSSPLF)
...
all files which are currently
**********
...
held (have a status of *HELD)
...
**********
...
ENDSELECT
IF COND('(
...
#return =
...
OV)')
...
CHANGE FIELD(#START)
...
TO('
...
#LASTREC +
...
1')
ELSE
LEAVE
ENDIF
END_LOOP
**********
...
USE BUILTIN(END_RTV_SPLF_LIST)
...
ENDIF