Composer 中的 ThingWorx 模型定义 > 建模 > 代码片段 > QueryImplementingThingsWithNamedData
QueryImplementingThingsWithNamedData
说明
使用此服务,可以查询实现作为服务运行基础的事物模板或事物形态的事物。属性名称将作为输入参数 (basicPropertyNamespropertyNames) 传递。结果为信息表,其中包含实现事物模板或事物形态的事物,以及运行查询所在的事物模板或事物形态的属性值。
输入
参数名称
说明
基本类型
maxItems
在结果集中返回的最大项数。默认值为 500。此参数仅在应用了所有其他筛选器后才会应用。
NUMBER
tags
与此条目的源关联的模型标记。
TAGS
nameMask
实现事物模板或事物形态的实体的名称模式。
STRING
query
用于筛选数据的查询条件。
只能为作为服务运行基础的事物模板或事物形态的有效属性编写筛选器。
有关详细信息,请参阅查询服务的查询参数
QUERY
basicPropertyNames
包含基本属性列表的信息表,其中基本属性包括 isSystemObject、name、description、homeMashup、avatar 和 tags 等。
信息表的预期数据形状为 EntityList
INFOTABLE
propertyNames
信息表,其中包含事物模板或事物形态的特定属性的列表。
信息表的预期数据形状为 EntityList
INFOTABLE
输出
参数名称
说明
基本类型
result
将返回一个信息表,其中包含实现事物模板或事物形态的事物列表,以及事物模板或事物形态所请求的属性及其值。
INFOTABLE
示例
在以下示例中,TestStream 有一个包含 Property1Property2Property3 字段的数据形状。
实体
ShapeProp1
ShapeProp2
ShapeProp3
ThingShape1
已定义
不适用
不适用
ThingShape2
不适用
不适用
不适用
ThingShape2
不适用
不适用
已定义
实体
父模板
Prop1
Prop2
Prop3
Prop4
实现的形态
有效属性
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
ShapeProp1
ShapeProp2
ShapeProp4
Thing1
Template1
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val1-1
SVal1-1
Thing2
Template2
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val2-1
Val2-2
SVal2-1
SVal2-2
Thing3
Template3
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val3-1
Val3-2
Val3-3
SVal3-1
SVa3l-2
Thing4
Template4
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm2"}
Val4-1
Val4-2
Val4-4
SVal4-1
SVal3-2
SVal4-4
以下示例使用受支持的参数查询带有数据的实现事物。此 API 调用会返回一个信息表,其中包含与输入参数匹配的事物模板或事物形态中请求的基本属性和其他属性。
运行下列查询后,生成的信息表将包含 name、description、tags、Prop1ShapeProp4
var params = {
infoTableName : "InfoTable",
dataShapeName : "EntityList"
};
// CreateInfoTableFromDataShape
var basicpropInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var basicProp1 = new Object();
basicProp1.name = "name"; // STRING [Primary Key]
basicProp1.description = undefined; // STRING
var basicProp2 = new Object();
basicProp2.name = "description"; // STRING
basicProp2.description = undefined; // STRING
var basicProp3 = new Object();
basicProp3.name = "tags"; // STRING
basicProp3.description = undefined; // STRING
basicpropInfoTable.AddRow(basicProp1);
basicpropInfoTable.AddRow(basicProp2);
basicpropInfoTable.AddRow(basicProp3);
var propertyNamesInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var prop1 = new Object();
prop1.name = "Prop1"; // STRING [Primary Key]
prop1.description = undefined; // STRING
var prop2 = new Object();
prop2.name = "ShapeProp4"; // STRING [Primary Key]
prop2.description = undefined; // STRING
propertyNamesInfoTable.AddRow(prop1);
propertyNamesInfoTable.AddRow(prop2);
result = ThingTemplates["Template4"].QueryImplementingThingsWithNamedData({
maxItems: 50 /* NUMBER {"defaultValue":500} */,
nameMask: "T*" /* STRING */,
tags: "MT1:MT1-MTerm1",
query: "{\"filters\":{\"type\": \"LIKE\", \"fieldName\": \"Prop1\", \"value\": \"Val*\" }}",
basicPropertyNames: basicpropInfoTable,
propertyNames: propertyNamesInfoTable
});
运行以下查询后,生成的信息表将包含 name、description、tags 和 ShapeProp1
var params = {
infoTableName : "InfoTable",
dataShapeName : "EntityList"
};
// CreateInfoTableFromDataShape
var basicpropInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var basicProp1 = new Object();
basicProp1.name = "name"; // STRING [Primary Key]
basicProp1.description = undefined; // STRING
var basicProp2 = new Object();
basicProp2.name = "description"; // STRING
basicProp2.description = undefined; // STRING
var basicProp3 = new Object();
basicProp3.name = "tags"; // STRING
basicProp3.description = undefined; // STRING
basicpropInfoTable.AddRow(basicProp1);
basicpropInfoTable.AddRow(basicProp2);
basicpropInfoTable.AddRow(basicProp3);
var propertyNamesInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var prop1 = new Object();
prop1.name = "ShapeProp1"; // STRING [Primary Key]
prop1.description = undefined; // STRING
propertyNamesInfoTable.AddRow(prop1);
result = ThingShapes["ThingShape1"].QueryImplementingThingsWithNamedData({
maxItems: 50 /* NUMBER {"defaultValue":500} */,
nameMask: "T*" /* STRING */,
tags: "MT1:MT1-MTerm1",
query: "{\"filters\":{\"type\": \"LIKE\", \"fieldName\": \"ShapeProp1\", \"value\": \"S*al*\" }}",
basicPropertyNames: basicpropInfoTable,
propertyNames: propertyNamesInfoTable
});
这对您有帮助吗?