Структуры данных
Структуры данных представляют данные в модели. Структура данных является именованным набором определений поля и соответствующих метаданных. Каждое поле в структуре данных имеет тип данных. ThingWorx имеет определенный набор базовых типов.
Структуры данных помогают создавать приложения, поскольку, когда приложение потребляет данные с помощью определения структуры данных, приложение имеет встроенные знания о том, как представлять набор данных. Например, при помещении данных в сетку в мэшапе сетка знает, как выглядят данные на основе определения структуры данных. Сетка знает, какие поля являются числовыми, строковыми или полями даты. Когда вы настраиваете рендеринг данных в сетке, это знание набора данных упрощает конфигурирование.
Существуют определенные вещи, которые создаются для хранения данных: потоки, потоки значений и таблицы данных. При определении вещи хранения данных необходимо определить структуру данных (кроме потоков значений).
Структуры данных используются во многих случаях аналогично определениям для потоков, потоков значений и таблиц данных. Структуры данных также используются везде, где требуется описать набор данных. Например, при определении выходных данных таблицы данных для реализации сервиса вы используете структуру данных, чтобы описать набор выходных результатов. Вы можете иметь свойство вещи типа таблицы данных и можете также определить структуру данных, которая описывает это свойство.
Базовые типы определения полей
Базовый тип
Описание
BASETYPENAME
Допустимое имя базового типа.
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
Соответствующие стандарту World Geodetic System (WGS) 84 геодезические координаты, выражаемые как [долгота, широта], высота.
LONG
Тип LONG должен использоваться, когда требуется диапазон, превышающий предоставляемый базовым типом INTEGER.
MASHUPNAME
Ссылка на мэшап ThingWorx, а потому требуется специальная обработка.
MENUNAME
Наименование меню.
NOTHING
Ничего не содержит (пусто).
NUMBER
Число.
* 
Допустимы экспоненциальные значения. Например, 123e45.
PASSWORD
Замаскированное значение пароля. Дополнительные сведения см. в разделе Пароли. Дополнительные сведения о методах шифрования см. в разделе Шифрование.
QUERY
Объект JSON, который включает массив фильтров. Каждый фильтр должен включать значение, тип и имя поля.
SCHEDULE
Расписание на основе cron (настраивается с помощью редактора расписания).
STRING
Любое количество буквенно-цифровых символов.
STYLETHEMENAME
Ссылка на тему стиля, а потому требуется специальная обработка.
TAGS
Значения тегов ThingWorx.
TEXT
Любое количество буквенно-цифровых символов. В отличие от типа STRING, тип TEXT индексируется.
THINGCODE
Числовое представление вещи, которое содержит идентификаторы DomainID и InstanceID. Например, 2:1.
THINGNAME
Ссылка на вещь, а потому требуется специальная обработка.
THINGSHAPENAME
Ссылка на профиль вещи в модели, а потому требуется специальная обработка.
THINGTEMPLATENAME
Имя шаблона вещи.
TIMESPAN
Объект TimeSpan представляет интервал времени (длительность времени или затрачиваемого времени), измеряемый как положительное или отрицательное число дней, часов, минут, секунд.
USERNAME
Ссылка на определяемое пользователем значение ThingWorx в системе.
VEC2
Набор из двух чисел. Например, двухмерные координаты x и y.
VEC3
Набор из трех чисел. Например, трехмерные координаты x, y и z.
VEC4
Набор из четырех чисел. Например, четырехмерные координаты x, y, z и w.
XML
Фрагмент или документ в формате XML.
Обновление существующей структуры данных
Учитывайте следующие последствия, если нужно обновить существующую структуру данных (изменение определений полей, типов или основных ключей) после определения:
Вставка данных после изменения структуры данных будет работать. Однако новые строки будут сопоставляться с новым определением структуры данных.
При вставке данных после изменения структуры данных основной ключ будет работать, но целостность существующих ключей все еще будет проверяться. При выполнении вставки значение ключа создается путем сцепления значений всех полей, которые помечены как основной ключ (в порядке определений полей), в одно поле с именем key.
Запросы строк после изменения структуры данных приведут к попыткам наилучшим образом сопоставить имена и типы полей с набором результатов. Если существующие строки не будут соответствовать типам или именам полей, строки по-прежнему будут включаться в набор, но без значений.