数据形状
数据形状表示模型中的数据。数据形状是指定的字段定义及相关元数据的集合。数据形状中的每个字段都具有一种数据类型。ThingWorx 提供了一组已定义的基本类型。
* 
在 ThingWorx 中,某些保留名称不能用作数据形状字段名称。例如,ThingShape
数据形状将有助于创建应用程序,因为当您使用数据时,应用程序会根据数据形状定义提供有关如何表示数据集的内置知识。例如,如果您要将数据放入混搭栅格中,则栅格会根据数据形状定义确定数据的样式。栅格可确定哪些字段是数字、字符串或日期。当配置栅格将如何显示数据时,数据集的此类知识会使得配置更为简单。
将创建用于存储数据的特定事物:流、值流和数据表。定义数据存储事物时,您必须定义数据形状 (值流除外)。
数据形状适用于许多情况,而并非仅用作流、值流和数据表。当您需要描述数据集时,也可以使用数据形状。例如,当为服务实现定义信息表输出时,您可以使用数据形状来描述输出结果集。您可以拥有信息表类型的事物属性,还可以指定用于描述该属性的数据形状。
在定义数据形状的字段时,至少应将其中一个字段标记为主键。如果将 MSSQL 用作持久化方案提供工具,则主键的值长度 (如果有一个以上的字段被标记为主键,则为多个主键值的组合长度) 将被限制为 128 个字符。如果所设置的值长度超过 128 个字符,则会显示以下错误消息之一,具体取决于您所使用的 MSSQL 版本:
MSSQL 2019:
Unable to Invoke Service AddDataTableEntries on testDataTable :
java.lang.RuntimeException: com.thingworx.common.exceptions.DataAccessException:
[1,018] Data store unknown error: [Error occurred while accessing the data provider.]
MSSQL 2017:
Unable to Invoke Service AddDataTableEntries on testDatatable :
java.lang.RuntimeException: com.thingworx.common.exceptions.DataAccessException:
[22,001] String or binary data would be truncated.
字段定义基本类型
基本类型
说明
BASETYPENAME
有效的基本类型名称。
BLOB
二进制大对象 (BLOB)。
BOOLEAN
True 或 False 值。
DASHBOARDNAME
仪表板名称。
DATASHAPENAME
对模型中数据形状的引用,因此具有特殊处理。
DATETIME
格式化的日期和时间。
GUID
全局唯一标识符。
* 
如果使用 GUID 作为基本类型,则建议设置 GUID 值。请不要留空 (默认)。
GROUPNAME
用户组名称。
HTML
HTML 内容。
HYPERLINK
标准 URL (例如 www.ptc.com)。
IMAGE
可以渲染为图像的二进制数据。
IMAGELINK
图像的 URL 链接。
INFOTABLE
ThingWorx 中数据的标准表示,类似于 SQL 结果集。有许多用于构建、使用和解析信息表的内置服务。
INTEGER
写入时不包含小数部分的数字。
JSON
JavaScript 对象表示法对象。
LOCATION
标准世界大地测量系统 (WGS) 84 坐标,表示为 [经度,纬度],海拔。
LONG
如果所需长度超出整数基本类型提供的范围,则应使用长整型。
MASHUPNAME
ThingWorx 混搭的引用,因此具有特殊处理。
MENUNAME
菜单名称。
NOTHING
未包含任何内容 (void)。
NUMBER
一个数字。
* 
允许使用指数值。例如,123e45
PASSWORD
掩码密码值。有关详细信息,请参阅密码。有关加密方法的信息,请参阅加密
QUERY
包括 "filters" 数组的 JSON 对象。每个筛选器都应包括 "value"、"type" 和 "fieldname"。
SCHEDULE
基于 cron 的计划,将使用计划编辑器进行配置。
STRING
任意数量的字母数字字符。
STYLETHEMENAME
对样式主题的引用,因此具有特殊处理。
TAGS
ThingWorx 标记值。
TEXT
任意数量的字母数字字符。与 STRING 的区别在于对 TEXT 进行了索引。
THINGCODE
包含 DomainID 及 InstanceID 的事物的数字表示。例如 2:1。
THINGNAME
对事物的引用,因此具有特殊处理。
THINGSHAPENAME
对模型中事物形态的引用,因此具有特殊处理。
THINGTEMPLATENAME
事物模板的名称。
TIMESPAN
TimeSpan 对象表示以天、小时、分钟、秒为单位计量的正数或负数时间间隔 (持续时间或已用时间)。
USERNAME
对系统中定义的 ThingWorx 用户的引用。
VEC2
两个数字的集合。例如,2D 坐标 x 和 y。
VEC3
三个数字的集合。例如,3D 坐标 x、y 和 z。
VEC4
四个数字的集合。例如,4D 坐标 x、y、z 和 w。
XML
一个 XML 片段或文档。
更新现有的数据形状
如果要在定义数据形状后对现有数据形状其进行更新 (更改字段定义、类型或主键),请考虑以下影响:
更改数据形状后将可以插入数据。但新增的行会映射至新的数据形状定义。
在更改数据形状后插入数据时,主键将起作用,但仍需要验证现有键的完整性。在执行插入操作时,通过将所有标记为主键的字段值 (按字段定义的顺序) 连接在一个名称为 key 的字段中,即可构建密钥值。
在更改数据形状之后查询行,将尽可能地将字段名称和类型映射到结果集中。如果现有行与类型或字段名称不匹配,这些行仍会包括在集中,但没有值。
这对您有帮助吗?