9.177 RCV_FROM_DATA_QUEUE
注意: 9.1 組み込み関数の規則 &<a href="bifcat4_02.htm"&>利用オプション&</a&>
IBM i のデータ待ち行列、またはWindowsでエミュレートされたデータ待ち行列から1個または複数の作業リスト項目を受け取ります。データ待ち行列の詳細については、IBMの適切なマニュアルを参照してください。
注:この組み込み関数は、IBM i またはWindowsオペレーティング・システムの完全な制御下で実行されるアプリケーションでのみ使用してください。
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
A |
必須 |
データ待ち行列の名前を指定するまたは含むリテラルまたは変数 |
1 |
10 |
|
|
2 |
N |
必須 |
戻り値1で指定された作業リストの、完全な1エントリーのバイト長が指定されたリテラル、またはそのバイト長が含まれた変数 |
1 |
5 |
0 |
0 |
3 |
N |
必須 |
データ待ち行列にデータが到達するまで、この組み込み関数が待機する時間(秒)を指定したリテラル、またはその時間を含めた変数
|
1 |
5 |
0 |
0 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
L |
必須 |
指定のデータ待ち行列からエントリーを受け取る作業リストの名前 |
1 |
10 |
|
|
技術上の注記
- この組み込み関数は、IBM i またはWindowsオペレーティング・システムで使用することができます。別のオペレーティング・システムでのデータ待ち行列の使用については、SND_TO_DATA_QUEUE組み込み関数に関する技術上の注記を参照してください。
例
PICKLISTと呼ばれるデータ待ち行列から顧客番号とパーツ番号を受け取り、その詳細を印刷します。エントリーがデータ待ち行列にあることがすでにわかっていると仮定します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING) ENTRYS(1) (where #CUSTNO is defined in the dictionary as a signed 5,0 number and #PARTNO is defined in the dictionary as a packed 7,0 number) USE BUILTIN(RCV_FROM_DATA_QUEUE) WITH_ARGS('PICKLIST' 9 0) TO_GET(#PICK) GET_ENTRY NUMBER(1) FROM_LIST(#PICK) EXECUTE SUBROUTINE(PRINT_PICK)
永久ループの中で、顧客番号とパーツ番号の詳細の到着を待ち、到着時に1つずつ受け取ります。到着した時に各詳細を印刷します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING) ENTRYS(1) BEGIN_LOOP USE BUILTIN(RCV_FROM_DATA_QUEUE) WITH_ARGS('PICKLIST'9 -1) TO_GET(#PICK) GET_ENTRY NUMBER(1) FROM_LIST(#PICK) EXECUTE SUBROUTINE(PRINT_PICK) END_LOOP
永久ループの中で、顧客番号とパーツ番号の詳細の到着を待ち、到着時に詳細(最大5個までのブロック単位)を受け取ります。各ブロックが到着した時にそれを印刷します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING) ENTRYS(5) COUNTER(#LISTCOUNT) BEGIN_LOOP USE BUILTIN(RCV_FROM_DATA_QUEUE) WITH_ARGS('PICKLIST'9 -1) TO_GET(#PICK) BEGIN_LOOP USING(#I) FROM(1) TO(#LISTCOUNT) GET_ENTRY NUMBER(#I) FROM_LIST(#PICK) EXECUTE SUBROUTINE(PRINT_PICK) END_LOOP END_LOOP
注:投入元ルーチンが、このデータ待ち行列に、顧客番号とパーツ番号のペアーを、実際に1、2、3、4、または5エントリー投入する場合、この組み込み関数は正常に動作します。しかし、ファンクションが、5個より多くのエントリーを1つのデータ待ち行列エントリーに投入した場合、このアプリケーションはエラーになります。#PICK作業リストは最大で5エントリーまでしか含められないためです。