首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thingworx:定制“`GetImplementingThings`”服务

Thingworx:定制“`GetImplementingThings`”服务
EN

Stack Overflow用户
提问于 2016-04-19 14:46:19
回答 2查看 1.7K关注 0票数 1

我是ThingWorx新手,我想在这个示例中获得一些实现服务的实用风味。我有这样的数据模型:

东西‘汽车’有东西‘传感器’(Infotable)

我想要的CarTemplate服务,将返回所有已实现的汽车,而不是传感器的对象,它将返回传感器的‘名称’属性。

我现在拥有的是:

代码语言:javascript
复制
"Car1Name" |  SensorObject

我想要的:

代码语言:javascript
复制
"Car1Name" | "Accelerator1Name"

求你了,帮我让它发生。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-20 06:57:06

ThingTemplates上没有“静态”服务,如果您想要用属性值恢复ThingTemplate的所有实现事物,那么您应该构建一个Thing。

帮手是什么东西?这是另一回事,不管你怎么称呼它,比方说CarHelpers,它有一个名为GetCarsWithSensors的服务,它执行一个GetCarsWithSensors或GetImplementingThingsWithData,并返回所需的Infotable。

票数 1
EN

Stack Overflow用户

发布于 2017-03-24 03:37:12

Carles的答案是有效的,但我会避免使用QueryImplementingThingsWithData。QueryImplementingThingsWithData的问题是Thingworx将检查可见性,然后检查每个实现的事物上的每个属性的安全性。如果您是作为用户在Administrators组中运行,这是很好的,但是一旦您有了大量的UserGroups和OrganizationalUnits,就会慢下来,很多。

相反,可以这样做:(您需要创建一个DataShape并将其设置为您的服务返回数据)

代码语言:javascript
复制
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);
    }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36721805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档