I am building a Extension , ThingTemplate is one of the input parameter of my service.
After some processing, Extension is suppose to create new Thing in my TW database.
I have found two methods :
objThing.SaveConfigurationTables();
objThing.persistConfigurationTables();
Are these the methods I should use for storing the Thing ?
Also what is way to add few more properties to ThingTemplate from Extension ?
Hi Aniket,
To add a property to a thing template, you will need to import the property definition package member into your Thing.java file.
import com.thingworx.metadata.annotations.ThingworxPropertyDefinition;
import com.thingworx.metadata.annotations.ThingworxPropertyDefinitions;
You will then create the properties using @ThingworxPropertyDefinitions
e.g.
@ThingworxPropertyDefinitions(properties = {
@ThingworxPropertyDefinition(name="StringProperty1", description="Sample string property", baseType="STRING", aspects={"isPersistent:false","isReadOnly:false"}),
@ThingworxPropertyDefinition(name="NumberProperty1", description="Sample number property", baseType="NUMBER", aspects={"isPersistent:false","isReadOnly:false"}),
})
Once a thing is created, and enabled, it is saved in your Thingworx database. The objThing.SaveConfigurationTables() and objThing.persistConfigurationTables() methods are used to add a configuration table to a thing
Hi SaeedMa,
I have created Thing using following code :
<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.2" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">ThingTemplate</span> <span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.3" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">parentThingTemplate</span> = <span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.4" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">ThingTemplateManager</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.5" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">getInstance</span>().<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.6" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">getEntity</span>(<span class="">"<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.7" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">FalkonryPredictor</span>"</span>);
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span>Thing <span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.8" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span> = <span class="">new</span> Thing();
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.9" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.10" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">setDescription</span>("<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.11" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">VendingMachineTemplateFalkonryPredictor</span><span class=""> - Thing created by <span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.12" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">Falkonry</span> Extension"</span>);
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.13" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.14" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">setName</span>("<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.15" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">VendingMachineTemplateFalkonryPredictor</span>");
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.16" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.17" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">setThingTemplate</span>(<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.18" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">parentThingTemplate</span>);
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.19" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.20" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">setThingTemplateName</span>(<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.21" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">parentThingTemplate</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.22" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">getName</span>());
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.23" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.activate();
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.24" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.25" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">EnableThing</span>();
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.26" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.start();
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.27" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.28" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">RestartThing</span>();
<span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class=""></span><span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.29" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">ThingManager</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.30" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">getInstance</span>().<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.31" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">createThing</span>(<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.32" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>, <span class="">true</span>);
Point 1 :
By this code thing is created and visible in Composer, but I am not able to run a service related to it.
Getting following error :
"context: com.thingworx.webservices.context.HttpExecutionContext@2474886a][message: Unable to Invoke Service loadResults on VendingMachineTemplateFalkonryPredictor : object is not an instance of declaring class]"
Point 2 :
In this thing properties are inherited from ThingTemplate "FalkonryPredictor". e.g. ID
While creating thing, I want to set ID with predefined value, How to set this ?
I tried setting ID by following code :
<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.41" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">objThing</span>.<span class="J-JK9eJ-PJVNOc" data-g-spell-status="2" id=":24s.42" tabindex="-1" role="menuitem" aria-haspopup="true" style="background: yellow;">setPropertyValue</span>(<span class="">"ID"</span>, obj.get(<span class="">"id"</span>));
But it's not working.