我是ThingWorx的新手,我希望在这个例子中获得实现服务的实际风格。 我有这样的数据模型:
Thing'Car'有东西'传感器'(Infotable)
我希望CarTemplate服务能够返回所有已实现的汽车而不是传感器的对象,它将返回传感器的“名称”属性。
我现在拥有的:
"Car1Name" | SensorObject
我想要的是什么:
"Car1Name" | "Accelerator1Name"
请帮助我实现它。
答案 0 :(得分:1)
ThingTemplates上没有任何“静态”服务,如果你想恢复ThingTemplate的所有实现内容,你应该建立一个Thing Helper属性值。
什么是东西助手?这是另一回事,无论你想要什么都叫它,比如CarHelpers,它有一个名为GetCarsWithSensors的服务,它执行ThingTemplates [“ThingTemplateName”]。GetImplementingThings()或GetImplementingThingsWithData并返回所需的Infotable。
答案 1 :(得分:0)
Carles的回答是有效的,但我会避免使用QueryImplementingThingsWithData。 QueryImplementingThingsWithData的问题在于Thingworx将检查可见性,然后检查每个实现的Thing上每个属性的安全性。如果您作为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);
}
}
&#13;