9.109 GET_SPLF_LIST_ENTRY
注意: 9.1 組み込み関数の規則 &<a href="bifcat2_08.htm"&>利用オプション&</a&>
この組み込み関数は、START_RTV_SPLF_LIST、END_RTV_SPLF_LISTと合わせて使用します。はじめに、START_RTV_SPLF_LISTを使用して、スプール・ファイル検索用の選択条件を提供する必要があります。指定できる選択条件は、ユーザー名、出力待ち行列名とライブラリ、フォーム・タイプ、ユーザー・データ、およびステータスです。START_RTV_SPLF_LISTを使って選択条件が確立されると、このGET_SPLF_LIST_ENTRY組み込み関数を使用してスプール・ファイルの詳細を取り込むことができます。スプール・ファイルのリストを取り込んだ後には、END_RTV_SPLF_LISTを使用する必要があります。これにより、リストをクローズして割り当てられていた記憶域を解放します。
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
N |
必須 |
開始レコード番号 |
5 |
15 |
0 |
0 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
N |
必須 |
戻された最後のレコード番号 |
5 |
15 |
0 |
0 |
2 |
L |
必須 |
取得するスプール・ファイルの詳細を含める作業リスト。呼び出し元のRDMLファンクションは、項目の長さの合計が正確に160バイトの作業リストを提供しなければなりません。 |
160 |
160 |
|
|
3 |
A |
任意 |
戻りコード |
2 |
2 |
|
|
例
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