Composer での ThingWorx モデルの定義 > モデル化 > コードスニペット > QueryImplementingThingsOptimizedWithTotalCount
QueryImplementingThingsOptimizedWithTotalCount
説明
このサービスは、サービス実行対象の Thing Template または Thing Shape を実装している Thing をクエリーするときに使用できます。結果は、テンプレートまたはデータシェイプを実装している Thing と、クエリーが実行された Thing Template または Thing Shape のプロパティ値が含まれているインフォテーブルです。
入力
パラメータ名
説明
ベースタイプ
maxItems
結果セットで返すアイテムの最大数。デフォルト値は 500 です。このパラメータは、その他すべてのフィルタが適用された後で適用されます。
NUMBER
tags
このエントリのソースに関連付けられているモデルタグ。
TAGS
nameMask
Thing Template または Thing Shape を実装しているエンティティの名前パターン。
STRING
query
データのフィルタに使用するクエリー基準。
フィルタは、サービスの実行対象の Thing Template または Thing Shape の有効なプロパティに対してのみ記述できます。
詳細については、クエリーサービス用クエリーパラメータを参照してください。
QUERY
withPermissions
true の場合、アクセス許可情報が結果に含まれます。
BOOLEAN
basicPropertyNames
isSystemObject、name、description、homeMashup、avatar、tags などの基本プロパティのリストが含まれているインフォテーブル。
インフォテーブルに必要なデータシェイプは EntityList です。
INFOTABLE
propertyNames
Thing Template または Thing Shape の特定のプロパティのリストが含まれているインフォテーブル。指定したプロパティがサービス実行対象の Thing Template または Thing Shape で定義されている必要があります。
インフォテーブルに必要なデータシェイプは EntityList です。
INFOTABLE
networkName
フィルタを適用するネットワークの名前。そのネットワーク内の Thing からの結果のみが返されます。
networkParentNode
networkName で指定したネットワーク内の最上位ノードの名前。そのネットワーク内の指定された親ノードのすべての子が返されます。
STRING
networkMaxDepth
ネットワーク内でサーチする最大深さ。この値がデフォルトの 0 に設定されている場合、子の階層全体が返されます。
INTEGER
offset
クエリーから行を返す前にスキップする行の数。デフォルト値 0 に設定した場合、すべての行が返されます。これは結果のページ付けに使用できます。
NUMBER
出力
パラメータ名
説明
ベースタイプ
result
Thing Template または Thing Shape を実装している Thing のリストと、Thing Template または Thing Shape のリクエストされたプロパティとその値が含まれているインフォテーブルを返します。このインフォテーブルのデータシェイプは ImplementedThingsWithTotalCount です。
INFOTABLE
エンティティ
ShapeProp1
ShapeProp2
ShapeProp3
ThingShape1
定義済み
該当なし
該当なし
ThingShape2
該当なし
定義済み
該当なし
ThingShape2
該当なし
該当なし
定義済み
エンティティ
親 Thing Template
Prop1
Prop2
Prop3
Prop4
実装された Thing Shape
有効なプロパティ
Template1
定義済み
該当なし
該当なし
該当なし
ThingShape1
Prop1ShapeProp1
Template2
Template1
Template1 から継承
定義済み
該当なし
該当なし
ThingShape2
Prop1
Prop2
ShapeProp1
ShapeProp2
Template3
Template2
Template2 から継承
Template2 から継承
定義済み
該当なし
Prop1
Prop2
Prop3
ShapePropy1
ShapeProp2
Template4
Template2
Template2 から継承
Template2 から継承
該当なし
定義済み
ThingShape4
Prop1
Prop2
Prop4
ShapeProp1
ShapeProp2
ShapeProp4
エンティティ
実装
モデルタグ
Prop1
Prop2
Prop3
Prop4
Thing1
Template1
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val1-1
Thing2
Template2
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val2-1
Val2-2
Thing3
Template3
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val3-1
Val3-2
Val3-3
Thing4
Template4
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm2"}
Val4-1
Val4-2
Val4-4
次のクエリーでは、結果のインフォテーブルには、Thing Template のリクエストされた基本プロパティ (name、description、tags、homeMashup)、リクエストされたプロパティ (Prop1)、および Thing の名前が含まれています。
次のコードは、サポートされているすべてのパラメータを使用して、実装している Thing とデータをクエリーします。
var params = {
infoTableName : "InfoTable",
dataShapeName : "EntityList"
};
// CreateInfoTableFromDataShape
var basicpropInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var basicProp1 = new Object();
basicProp1.name = "name";
basicProp1.description = undefined;
var basicProp2 = new Object();
basicProp2.name = "description";
basicProp2.description = undefined;
var basicProp3 = new Object();
basicProp3.name = "tags";
basicProp3.description = undefined;
var basicProp4 = new Object();
basicProp4.name = "homeMashup";
basicProp4.description = undefined;
basicpropInfoTable.AddRow(basicProp1);
basicpropInfoTable.AddRow(basicProp2);
basicpropInfoTable.AddRow(basicProp3);
basicpropInfoTable.AddRow(basicProp4);
var propertyNamesInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var prop1 = new Object();
prop1.name = "Property1";
prop1.description = undefined;
var prop2 = new Object();
prop2.name = "Property4";
prop2.description = undefined;
propertyNamesInfoTable.AddRow(prop1);
result = ThingTemplates["Template1"].QueryImplementingThingsOptimizedWithTotalCount({
maxItems: 50 ,
nameMask: "T*",
tags: "MT1:MT1-MTerm1",
query: "{\"filters\":{\"type\": \"LIKE\", \"fieldName\": \"Property1\", \"value\": \"Val*\" }}",
basicPropertyNames: basicpropInfoTable,
propertyNames: propertyNamesInfoTable,
networkName: 'Network1',
networkParentNode: 'TestThing1',
networkMaxDepth: 0,
offset: 0
});
これは役に立ちましたか?