GET コマンドは、インバウンド・ドキュメント・オブジェクトからのデータの読み込みに使用されます。
GET コマンドは、JSON ドキュメントのデータをプログラムにロードする際に不可欠な要素です。このコマンドの前にREADコマンドとBINDコマンドを使用してください。
条件付
GET ---------- LIST ---------- 値 ---------------------------->
>-- FRAGMENT ------ 値 ----------------------------|
キーワード
LIST |
このキーワードは、ロードされた JSON ドキュメントからリストを取得する場合に使用されます。 このキーワードの使用方法の詳細については、以下の「リストと変数」セクションを参照してください。 このキーワードは条件付です。 |
FRAGMENT |
このキーワードは、ロードされた JSON ドキュメントからフィールド・フラグメントを取得する場合に使用されます。 このキーワードの使用方法の詳細については、以下の「リストと変数」セクションを参照してください。 このキーワードは条件付です。 |
コメント/警告
一度に1つのキーワードしか使用できません。
JSON ドキュメントからリストを読み込むには、次の 2 つの方法があります。
1. JSON エレメントの関連セクションをリストとして定義 (JSON バインディング・ウィザードを使用) して、GET コマンドの LIST キーワードを使用できます。これにより、リスト全体が1回で作業リストに取り出されます。
2. あるいは、関連セクションをフラグメントの集合として定義 (JSON バインディング・ウィザードを使用) して、GET コマンドの FRAGMENT キーワードを使用してこれをループに置きます。
詳細は、例を参照してください。.
注意:フラグメントとリストGET FRAGMENTとGET LISTを一緒に使用する場合、以下の点が重要です。
リストと変数
LISTキーワードを使用して、ロードされたドキュメントからプログラムにリストを返す場合、以下のステップがプログラムで行われるようにする必要があります。
1. JSON ドキュメントから予想されるフィールドを含む作業リストを定義します。
2. GETコマンドで、SERVICE_LISTキーワードとLISTキーワードを一緒に使用します。サービスのリスト値には、「#」を使用せずに作業リストのフィールド名を入れる必要があります。ここで、作業リストに表示される順序でフィールドの順序を定義する必要があります。
3. JSM_COMMAND組み込み関数のTO_GET部分に、返される値を保持する作業リストの名前を入れます。
FRAGMENTキーワードを使用してフィールドまたはフィールドのグループを返す場合、値*FIELDを指定したSERVICE_EXCHANGEキーワードを追加する必要があります。
この方法の詳細については、例を参照してください。
例
RDML
* Define JSM fields
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(020)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(256)
* Define a list to hold the order line details
DEF_LIST NAME(#WRKLINES) FIELDS(#LINNUM #PARTNUM #PARTDSC #PARTAMT #PARTQTY) TYPE(*WORKING)
* Get SalesOrder Details
CHANGE FIELD(#JSMCMD) TO('GET FRAGMENT(SALESORDER) SERVICE_EXCHANGE(*FIELD)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)
* Get Lines
CHANGE FIELD(#JSMCMD) TO('GET LIST(LINE) SERVICE_LIST(LINNUM,PARTNUM,PARTDSC,PARTAMT,PARTQTY)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #WRKLINES)
RDMLX
* Define the fields used by the JSM Commands
Define FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(020)
Define FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)
Define FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(256)
Define FIELD(#JSMHND) TYPE(*CHAR) LENGTH(4)
#JSMCMD := 'GET FRAGMENT(CUSTOMER) SERVICE_EXCHANGE(*FIELD)'
Use Builtin(JSMX_COMMAND) With_Args(#JSMHND #JSMCMD) To_Get(#JSMSTS #JSMMSG)