Пользовательская стратегия присутствия вещи: создание вещи для ее использования
После создания новой вещи стратегии расширение можно построить и импортировать "как есть", что позволит применять эту стратегию к удаленным вещам из таблицы конфигурации отчетности для этих вещей внутри ThingWorx Platform.
Также, если потребуется создать какие-либо вещи, можно создать их в среде данного расширения и предварительно применить к ним новую стратегию. Этот процесс во многом похож на предыдущий процесс создания вещи стратегии. Потребуется создать новый файл вещи в папке <Корневая_папка_проекта>/Entities/Things. Для этого примера будет использоваться имя: RemoteThingWithJavaStrategy, поэтому имя файла будет иметь следующий вид: Things_RemoteThingWithJavaStrategy.xml, а его содержимое показано ниже.
Как и в предыдущем примере, необходимо править строки, указывающие главный мэшап, наименование вещи и т. д. Кроме того, нужно отредактировать строку, которая задает стратегию передачи сообщений, чтобы она отражала имя пользовательской вещи стратегии.
Следующий пример описывает вещь, реализующую стратегию Java.
<?xml version="1.0" encoding="UTF-8"?>
<Entities
build="latest"
majorVersion="0"
minorVersion="0"
modelPersistenceProviderPackage="H2PersistenceProviderPackage"
revision="0"
schemaVersion="1040"
universal="">
<Things>
<Thing
description=""
documentationContent=""
effectiveThingPackage="RemoteThing"
enabled="true"
homeMashup=""
identifier=""
lastModifiedDate="2018-08-17T15:35:54.051Z"
name="RemoteThingWithJavaStrategy"
projectName=""
published="false"
tags=""
thingTemplate="RemoteThing"
valueStream="">
<ConfigurationTables>
<ConfigurationTable
description="Reporting Settings"
isMultiRow="false"
name="ReportingConfiguration"
ordinal="0">
<DataShape>
<FieldDefinitions>
<FieldDefinition
aspect.defaultValue="AlwaysOnReporting"
aspect.isPrimaryKey="true"
aspect.isReadOnly="false"
aspect.thingTemplate="ReportingStrategy"
baseType="THINGNAME"
description="Strategy to determine health"
name="reportingStrategy"
ordinal="0"/>
</FieldDefinitions>
</DataShape>
<Rows>
<Row>
<reportingStrategy><![CDATA[CustomStrategyJava]]>
</reportingStrategy>
</Row>
</Rows>
</ConfigurationTable>
</ConfigurationTables>
</Thing>
</Things>
</Entities>
Выполнение стратегии
Начиная с версии ThingWorx 8.4.0 переоценка состояния isReporting удаленной вещи производится при каждой привязке или отмене привязки вещи к ThingWorx Platform. Переоценку состояния isReporting удаленной вещи также можно выполнить в любое время (например, по таймеру) с помощью сервиса EvaluateReporting, доступного для удаленных вещей.
Было ли это полезно?