我是ThingWorx新手,我想在这个示例中获得一些实现服务的实用风味。我有这样的数据模型:
东西‘汽车’有东西‘传感器’(Infotable)
我想要的CarTemplate服务,将返回所有已实现的汽车,而不是传感器的对象,它将返回传感器的‘名称’属性。
我现在拥有的是:
"Car1Name" | SensorObject我想要的:
"Car1Name" | "Accelerator1Name"求你了,帮我让它发生。
发布于 2016-04-20 06:57:06
ThingTemplates上没有“静态”服务,如果您想要用属性值恢复ThingTemplate的所有实现事物,那么您应该构建一个Thing。
帮手是什么东西?这是另一回事,不管你怎么称呼它,比方说CarHelpers,它有一个名为GetCarsWithSensors的服务,它执行一个GetCarsWithSensors或GetImplementingThingsWithData,并返回所需的Infotable。
发布于 2017-03-24 03:37:12
Carles的答案是有效的,但我会避免使用QueryImplementingThingsWithData。QueryImplementingThingsWithData的问题是Thingworx将检查可见性,然后检查每个实现的事物上的每个属性的安全性。如果您是作为用户在Administrators组中运行,这是很好的,但是一旦您有了大量的UserGroups和OrganizationalUnits,就会慢下来,很多。
相反,可以这样做:(您需要创建一个DataShape并将其设置为您的服务返回数据)
var result; //result infotable, of your CarDataShape
var myThings = ThingTemplates["CarTemplate"].QueryImplementingThings();
for(var i=0; i< myThings.getRowCount(); i++) {
var myCar = Things[myThings.rows[i].name];
for(var j=0; j < myCar.sensorProperty.getRowCount(); j++) {
var newRow = {};
newRow.name = myCar.name;
newRow.sensor = myCar.sensorProperty.rows[j].sensorName;
result.AddRow(myCar);
}
}
https://stackoverflow.com/questions/36721805
复制相似问题