データテーブルサービス
データテーブルシェイプに固有のデータテーブルとの間でデータをやり取りするための組み込みサービスが多数用意されています。以下に示します。
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 インデックスよりも大きく重み付けされます。
GetDataTableEntries(NUMBER maxItems) - 最新のエントリから順に、リクエストされたアイテムの最大数までエントリを返します。
GetDataTableEntry(STRING keyvalue) - 一致するエントリが含まれる 1 行のインフォテーブルを返します。
GetFieldNames - このデータテーブルに関連付けられているフィールド名のリストを返します。
PurgeDataTableEntries - このデータテーブルのすべてのエントリを除去します。Boolean の戻り値によって成功または失敗が示されます。
QueryDataTableEntries(NUMBER maxItems, STRING queryExpression, TAGS tags, VALUES query) - リクエストパラメータが一致するレコードから成るインフォテーブルを返します。
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"}}
以下の結果が返されます。