Composer 中的 ThingWorx 模型定义 > 建模 > 事物组 > 事物组常见问题解答
事物组常见问题解答
问题
解答
是否可以对事物组配置运行时权限的委派?
否,因为事物组实体与事物实体所拥有的服务集不同。这适用于通过出厂设置事物模板和事物形态创建的自定义事物,尤其适用于自定义事物模板和事物形态。
如何启用与事物组成员资格相关的审计日志消息?
此功能必须在 platform-settings.json 文件中启用。有关详细信息,请参阅 ThingWorx 审计消息
如何获取可在 ThingWorx 应用程序中管理或使用的“所有事物”列表?
对于您拥有查看权限的“所有事物”实体,我们为您提供了两种查看方式:
在 Composer 中:从 Composer 的“建模”部分中选择“事物”,即可查看您有权查看的所有事物。如果用户拥有访问 Composer 所需的权限以及用于查看事物集合事物的可见性权限,则不需要事物组。
通过 REST API:ThingWorx 提供用于 REST、JavaScript 服务和 Java 扩展逻辑的 API 来获取事物集合中事物的列表。用于调用事物集合列表 API 逻辑的用户上下文可确定所使用的可见性权限,同时可确定返回的事物的列表。可使用 JavaScript 服务和 Java 扩展来编写 ThingWorx 应用程序。对于 REST API,资源 URI 为 /Thingworx/Things 端点。
用户或用户组对哪些事物组或事物具有可见性?
服务的已授权用户可以按以下方式确定此事项:
1. 确定用户或用户组作为成员所属的组织和/或组织单位。
2. 使用迭代方法 (如 ThingWorx 服务脚本中的 for 循环) 可在所有事物/事物组中进行迭代,同时可调用 GetVisibilityPermissionsGetVisibilityPermissionsAsJSON 服务来查看在第一步中检索到的列表中是否包含组织/组织单位。
* 
配置调用这些服务的权限时应谨慎,因为服务会检查确切的成员资格并返回列表而不考虑组的可见性,因此它们旨在供有权限的 API 工作流使用。
启用事物组可见性权限委派后对性能有何影响?
启用事物组可见性权限委派后,性能影响会有所不同,具体取决于以下几种部署配置:
如果用户是事物或事物组的管理员或所有者,则无需进一步检查可见性权限委派功能。
对于请求用户而言,可接受且有效的显式事物/事物组可见性权限无需进一步检查可见性权限委派功能。
事物组层次结构模型的布局 (深度、宽度、编号等) 会影响整个层次结构参与者的可见性检查算法。
用于验证先前可见性的事物组成员资格更改 (模型更改) 率,将检查是否需要在上一个项目符号点中重新进行计算。
如果先前的可见性检查数据不再可用,则可能需要重新计算特定事物/事物组可见性的访问率。
* 
如果禁用可见性权限委派,则可见性检查性能将与事物/事物组可见性检查性能匹配。
如何获取要在 ThingWorx 应用程序中使用的模型/事物模板内的所有事物的列表?
要获取您可见的所有事物的列表:
* 
Axeda 模型在 ThingWorx 中表示为事物模板。
对事物模板和事物形态上的其中一项 QueryImplementingThings 服务使用服务调用(通过 REST、JavaScript 服务、Java 扩展):
QueryImplementingThings
QueryImplementingThingsWithData
QueryImplementingThingsWithNamedData
QueryImplementingThingsWithPropertyHistory
QueryImplementingThingsWithNamedPropertyHistory
无需提供查询参数即可使用以下服务:
GetImplementingThings
GetImplementingThingsWithData
如何对区域的事物进行建模以在 ThingWorx 应用程序中使用?
区域是可使用模型标记、属性值、事物组实体进行建模的地理区域或分区。
事物组实体提供了原生层次结构功能,用于以层次结构形式将一些区域嵌套在另一些区域内。您可以向层次结构内的特定事物和事物组提供可见性,从而可指定一组用户。
1. 使用 REST API、ThingWorx 中的服务或通过事物组实体 UI 创建事物组。
2. 通过提供其他实体模型数据 (如名称、说明和标记) 来自定义事物组实体的详细信息。
3. 通过事物组成员 REST API 和/或服务将任何事物或子区域事物组添加为事物组的成员。
如何列出区域的事物?
有几个选项可供选择,具体取决于您的区域的实现方式以及区域事物的标记方式。您可以使用模型标记 (不提供层次结构)、字符串属性值 (不提供层次结构) 或事物组 (提供层次结构)。
如果您使用了模型标记或字符串属性值,则可以使用各种搜索资源服务,或者,如果事物模板/事物形态已知,则可以使用各种 QueryImplementingThingsQueryImplementingThingsWithDataQueryImplementingThingsWithNamedDataQueryImplementingThingsWithPropertyHistoryGetImplementingThingsWithData 等相关服务来获取满足搜索条件的事物的列表。
如果您完全或部分地将区域实现为事物组,则可以查找特定区域的事物组,并调用无需提供查询条件即可返回事物列表的服务。
如何对客户的事物进行建模以在 ThingWorx 应用程序中管理和/或使用?
可使用模型标记、属性值或事物组实体对客户、公司、企业或部门进行建模。使用这些建模示例的事物组可提供用于将业务或其他类似非地理结构作为层次结构进行嵌套的功能。您可以向层次结构内的特定事物和事物组提供可见性,从而可指定一组用户:
1. 通过使用 REST API 和/或 ThingWorx 中的服务或通过事物组实体 UI 创建事物组。
2. 通过提供其他实体模型数据 (如名称、说明和标记) 来自定义事物组实体的详细信息。
3. 通过事物组成员 REST API 或通过服务利用原生嵌套/层次结构功能将任何事物或子地区事物组添加为事物组的成员。
如何列出客户的事物?
有多个选项可供选择,具体取决于您对客户的实现方式以及客户事物的标记方式。除其他选项外,您还可以使用模型标记 (不提供层次结构)、字符串属性值 (不提供层次结构) 或事物组 (提供层次结构)。
如果您使用模型标记或字符串属性值,则可以使用各种搜索资源服务,或者,如果事物模板/事物形态已知,则可以使用各种服务 (如 QueryImplementingThingsQueryImplementingThingsWithDataQueryImplementingThingsWithNamedDataQueryImplementingThingsWithPropertyHistoryGetImplementingThingsWithData) 来获取满足搜索条件的事物列表。
如果您完全或部分地将客户实现为事物组,则可以查找作为客户的事物组,并调用无需提供查询条件即可返回事物列表的服务。
如何对系统的事物进行建模以在 ThingWorx 应用程序中管理和/或使用?
有多个选项可供使用:
使用 THINGNAME 作为在事物上定义的属性的基本类型。对于属性为容器事物 (其中包含这些属性所参考的事物) 的属性,此选项可用于显示包含这些属性的事物。如果这些事物的名称为 THINGNAME 基本类型属性的值,则会将其视为包含的事物。您也可以将这些属性的类型设置为强类型,以允许实现特定事物形态或事物模板的特定包含事物。
当包含的事物仅包含在网络内的一个节点中时,请针对此方案定义/使用网络。如果事物包含在网络内的多个节点中,则使用前一个方案。
如果上述方法不足以解决问题,则还可以使用事物组的常规功能来满足应用程序逻辑或模型需求。
如何对使用相同位置的一组事物 (如“我的住所”或“我的公司”) 进行建模?
由于这些事物共享相同的位置,因此您可以使用模型标记、属性值、事物组或包含的事物来对组进行建模。
如果您使用事物组以成员的方式来保存这些事物,则还可以将事物嵌套在事物组内,以对事物进行分类并收集到“我的住所”或“我的公司”等使用相同位置的事物的子组中。在此示例中,嵌套的/子组可以是建筑物内的房间或楼层。
如何将位置关联到区域?
使用位置基本类型 (纬度、经度和海拔数据) 进行属性定义,或者为位置 (例如街道地址或其他坐标系或区域设置格式) 创建自己的位置元数据信息表。
如果实体模型或 ThingWorx 应用程序需要了解“属于或包含在给定区域内”的位置数据,则根据应用程序运行时性能需求可将位置数据的授权存储在数据表中。此信息可作为事物组成员或通过其他自定义/应用程序特定关联 (如模型标记或数据标记) 存在于事物组内的不同层次级别中。
如何将位置关联到客户?
使用位置基本类型 (纬度、经度和海拔数据) 进行属性定义,或者为位置 (例如街道地址或其他坐标系或区域设置格式) 创建自己的位置元数据信息表。
如果实体模型或 ThingWorx 应用程序需要了解“属于或包含在给定客户、公司、企业或部门内”的位置数据,则根据应用程序运行时性能要求可将位置数据的授权存储在数据表中。此信息可作为事物组成员或通过其他自定义/应用程序特定关联 (如模型标记或数据标记) 存在于事物组内的不同层次级别中。
如何将位置添加到一个或多个事物?
ThingWorx 提供了一个丰富的模型,用于通过事物、事物模板和事物形态属性定义将数据分配至事物,其中的值将在事物实例中进行设置、存储和检索。
如果您的事物为特定常用类型且共享一个常用事物模板,或者您的事物具有不同类型,但目前共享或可以共享一个常用事物形态,则属性可以在该常用事物模板和/或事物形态上定义一次。
事物模板或事物形态中的属性定义值可在事物上进行设置。如果已使用 LOCATION、STRING 或其他基本类型定义属性,则可以在事物上设置该位置属性的值。该属性的值取决于其基本类型或您想要在应用程序中支持的数据自定义格式,例如坐标或街道地址。
如何将客户添加到一个或多个事物?
ThingWorx 提供了一个丰富的模型,用于通过事物、事物模板和事物形态属性定义将数据分配至事物,其中的值将在事物实例中进行设置、存储和检索。
如果您的事物或资产为特定常用类型且共享一个常用事物模板,或者,如果您的事物和资产具有不同类型,但目前共享或可以共享一个常用事物形态,则属性可以在该常用事物模板和/或事物形态上定义一次。
事物模板或事物形态中的属性定义的值可在事物上进行设置。如果属性已定义为 STRING 或其他基本类型,则可以在事物或 资产上设置客户、公司、企业或部门名称属性的值。该属性的值取决于其基本类型或您想要在应用程序中支持的数据自定义格式,例如客户、公司、企业或部门名称。
如何显示事物组的子项?
在 Composer 中,打开现有的事物组。单击“成员资格详情”选项卡,找到组合框,然后选择“直接子项事物组”
要查看事物组子项的详细信息,请单击“成员资格详情”选项卡面板上的条目,然后选择“视图”。在该视图中,转至“成员资格详情”以查看该事物组的直接子项事物组。
如何显示事物组的父项事物组?
在 Composer 中,打开现有的事物组。单击“成员资格详情”选项卡,找到组合框,然后选择“直接父项事物组”
要查看事物组子项的详细信息,请单击“成员资格详情”选项卡面板上的条目,然后选择“视图”。在该视图中,转至“成员资格详情”以查看该事物组的直接子项事物组。
何时使用网络,何时使用事物组?
对于事物之间的定向连接关系 (如生产线中的机器),建议使用网络。对于按常用特性 (如模板类型、位置、客户或区域) 分组的事物,建议使用事物组。
虽然网络和事物组均具有提供模型层次结构的功能,但应考虑其不同之处。
网络需要利用网络来跟随任何给定节点的子项和父项。
网络不能包含另一个网络实体作为成员。
事物组提供了层次结构和层次结构导航功能。因此,建议对事物组的区域、客户和其他层次结构关系进行建模。
事物组可以在其他事物组中作为子项重用,以创建多个层次结构的可重用子集分支。
这对您有帮助吗?