사물 존재 사용자 정의 전략: 사물을 만들어 사용
새 전략 사물을 만든 후 확장을 빌드하고 있는 그대로 가져올 수 있습니다. 이를 통해 이 전략을 ThingWorx Platform 내의 해당 사물에 대한 보고 구성 테이블에 있는 원격 사물에 적용할 수 있습니다.
또는 만들려는 사물이 있는 경우 확장 내에서 사물을 만들고 사물에 새 전략을 사전 적용할 수 있습니다. 이 프로세스는 이전의 전략 사물을 만드는 프로세스와 상당히 유사합니다. <Project Root>/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부터는 사물이 ThingWorx Platform에서 바인딩되거나 바인딩 취소될 때마다 원격 사물의 "isReporting" 상태가 재평가됩니다. 또한 원격 사물의 "isReporting" 상태는 원격 사물에서 사용할 수 있는 EvaluateReporting 서비스를 실행하여 언제든지 재평가될 수 있습니다(예: 타이머 사용).