GET

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)