9.121 GET_SPLF_LIST_ENTRY
この組み込み関数は、START_RTV_SPLF_LIST、END_RTV_SPLF_LISTと合わせて使用します。はじめに、START_RTV_SPLF_LISTを使用して、スプール・ファイル検索用の選択条件を提供する必要があります。指定できる選択条件は、ユーザー名、出力待ち行列名とライブラリ、フォーム・タイプ、ユーザー・データ、およびステータスです。START_RTV_SPLF_LISTを使って選択条件が確立されると、このGET_SPLF_LIST_ENTRY組み込み関数を使用してスプール・ファイルの詳細を取り込むことができます。スプール・ファイルのリストを取り込んだ後には、END_RTV_SPLF_LISTを使用する必要があります。これにより、リストをクローズして割り当てられていた記憶域を解放します。
各製品の対応
LANSA/AD |
使用可 |
RDMLXでは使用不可 |
Visual LANSA for Windows |
未対応 |
|
Visual LANSA for Linux |
未対応 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
必須 |
開始レコード番号 START_RTV_SPLF_LISTの後に初めてこの組み込み関数を使用する場合は、1を指定する必要があります。2回目以降の呼び出しの場合は、前の呼び出しで戻された最後のレコード番号に1を加えた値を指定します。この値はゼロより大きな正数にする必要があります。 |
5 |
15 |
0 |
0 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
必須 |
戻された最後のレコード番号 このリストで最後のレコードの番号が戻されます。この値を使って、次にこの関数を使用するときの開始レコード番号を設定できます。次の呼び出しに使用する開始レコード番号は、この値に1を加えた値です。 |
5 |
15 |
0 |
0 |
2 |
L |
必須 |
取得するスプール・ファイルの詳細を含める作業リスト。呼び出し元のRDMLファンクションは、項目の長さの合計が正確に160バイトの作業リストを提供しなければなりません。 戻されるそれぞれのリスト項目は、次のような形式にする必要があります。 開始 - 終了 説明 1 - 10 A(10) スプール・ファイル名 11 - 20 A(10) ジョブ名 21 - 30 A(10) ユーザー 31 - 36 A(6) ジョブ番号 37 - 40 A(4) スプール・ファイル番号 41 - 44 P(7,0) 総ページ数 45 - 48 P(7,0) 現在のページ 49 - 52 P(7,0) 印刷待ち部数 53 - 62 A(10) 出力待ち行列名 63 - 72 A(10) 出力待ち行列ライブラリ 73 - 82 A(10) ユーザー・データ 83 - 92 A(10) ステータス 93 - 102 A(10) フォーム・タイプ 103 - 104 A(2) 優先順位 105 - 136 A(32) 予約済み 137 - 146 A(10) 装置タイプ 147 - 160 A(14) 予約済み |
160 |
160 |
||
3 |
A |
任意 |
戻りコード OK = リスト(満載または一部)が戻された。この選択でこれ以上のスプール・ファイルは存在しない OV = リスト(満載)が戻された。ただしリストに収まらなかったスプール・ファイルがさらに存在する NR = リストは空で戻された ER = スプール・ファイルの取得中にエラーが発生した。開始レコードは無効の場合がある |
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 I5/OS 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