データテーブルサービス
データテーブルシェイプに固有のデータテーブルとの間でデータをやり取りするための組み込みサービスが多数用意されています。以下に示します。
サービス
説明
AddDataTableEntry (TAGS tags, VALUES values)
VALUES、およびオプションで tags を渡します。Boolean の戻り値によって成功または失敗が示されます。
AddDataTableEntries
複数のデータテーブルエントリを追加します。
AddOrUpdateDataTableEntry (TAGS tags, VALUES values)
VALUES、およびオプションで tags を渡します。データテーブル内の新規または更新されたエントリの streamID の STRING 値が返されます。行が存在する場合には行を更新し、行が存在しない場合には行が追加されます。
AddOrUpdateDataTableEntries
複数のデータテーブルエントリを追加または更新します。行が存在する場合には行を更新し、行が存在しない場合には行が追加されます。更新されるためにはプライマリキーが一致している必要があります。
AssignDataTableEntries
既存のデータテーブルエントリを置き換えます。
DeleteDataTableEntry (STRING keyvalue)
キー値に基づいて単一のエントリを削除します。Boolean の戻り値によって成功または失敗が示されます。
* 
エントリを削除するにはプライマリキーが必要です。
DeleteDataTableEntries
インフォテーブル入力パラメータで指定されている 1 行目の値と一致する複数のエントリを削除します。たとえば、データテーブルに Int01 という名前のフィールドがあり、3 つのエントリの Int0110 に設定されているとします。実行したときに、削除基準として 10 が指定されている場合、DeleteDataTableEntries はこの 3 つのエントリすべてを削除します。
* 
インフォテーブルの入力パラメータで複数の値の行が指定されている場合、"Invalid Number of values provided to DeleteDataTableEntries in thingName" というエラーが表示されます。
FindDataTableEntries
インデックスのみをサーチします。このため、QueryDataTableEntries サービスを使用する場合よりも時間がかかりません。
* 
データテーブルのコンフィギュレーションで複数のインデックスが定義されている場合、FindDataTableEntries に渡す Values パラメータでサーチ対象として指定したフィールドに応じて、サーチに使用されるインデックスが重み付けされます。たとえば、4 つのプロパティ (INTEGER、BOOLEAN、STRING、TEXT) があり、2 つのインデックスを (1 つは BOOLEAN と STRING、1 つは TEXT に) 作成している場合、サーチする値を TEXT プロパティだけで指定すると、TEXT インデックスでサーチする値を指定したので、そのインデックスは BOOLEAN/STRING インデックスよりも大きく重み付けされます。
* 
FindDataTableEntries にはインフォテーブル入力パラメータを 1 つだけ指定できます。入力パラメータが指定されていないか複数の入力パラメータが指定されている場合、結果は返されません。
GetDataTableEntries (NUMBER maxItems)
最新のエントリから順に、リクエストされたアイテムの最大数までエントリを返します。
GetDataTableEntry (STRING keyvalue)
一致するエントリが含まれる 1 行のインフォテーブルを返します。
GetFieldNames
このデータテーブルに関連付けられているフィールド名のリストを返します。
PurgeDataTableEntries
このデータテーブルのすべてのエントリを除去します。Boolean の戻り値によって成功または失敗が示されます。
QueryDataTableEntries (NUMBER maxItems, STRING queryExpression, TAGS tags, VALUES query)
リクエストパラメータが一致するレコードから成るインフォテーブルを返します。
* 
QueryDataTableEntries にはインフォテーブル入力パラメータを 1 つだけ指定できます。
入力パラメータが指定されていない場合、QueryDataTableEntries はデータテーブルのすべての行を返します。
複数の入力パラメータが指定されている場合、1 つ目の入力と一致する行だけが返され、その他の入力は破棄されます。この場合、サービスのクエリー入力パラメータを使用します。
SearchDataTableEntries
サーチクエリーパラメータと一致するすべてのデータテーブルエントリを返します。このサービスでは searchExpression がキーになり、これは STRING および TEXT フィールドのフルテキストサーチを行う場合にのみ含まれます。searchExpression には、+ (プラス記号)、大文字と小文字の区別、? (疑問符)、 % (パーセント記号)、ANDOR の各フィルタを使用できます。
UpdateDataTableEntry (TAGS tags, VALUES values)
values、およびオプションで tags を渡します。Boolean の戻り値によって成功または失敗が示されます。行が存在する場合には行を更新します。
データテーブルサーチでの大文字と小文字の区別の定義
query パラメータでフィルタを使用することで、データテーブルサーチでの大文字と小文字の区別を定義できます。
たとえば、以下のエントリに対して SearchDataTableEntries サービスを使用します。
query パラメータにフィルタを定義して、大文字と小文字が区別された結果を返すことができます。以下に例を示します:
{"filters":{"type":"EQ", "fieldName":"Field1","isCaseSensitive":true, "value":"AA"}}
上記のクエリーを使用した場合、以下の結果が返されます。
同じサービスを使用したもう 1 つの例として、query パラメータで以下のフィルタを使用します。
{"filters":{"type":"EQ", "fieldName":"Field1","isCaseSensitive":true, "value":"aa"}}
以下の結果が返されます。
これは役に立ちましたか?