cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Overwriting an Infotable Property

SOLVED
Highlighted
Garnet

Overwriting an Infotable Property

I have the following code with which i never assign the variable back to the property however my property on the "Thing" changes to match the service result. Does anyone know why this is happening?

var original=Things["Thing"].Property;
var variable=original;

var newField = new Object();
newField.name = "Setpoint";
newField.baseType = 'STRING';
variable.AddField(newField);

for (var i=0;i<variable.rows.length;i++){
    variable.rows[i].Setpoint=/*somevalue*/;
}
var result=variable;
1 ACCEPTED SOLUTION

Accepted Solutions

Re: Overwriting an Infotable Property

Doing that:

var original=Things["Thing"].Property;

or that:

var variable=original;

 you don't clone Property contents, you get a reference to it, that's why property it's changing, if you want to work with a cloned copy:

var variable = Resources["InfotableFunctions"].Clone({ t1: original });

View solution in original post

4 REPLIES 4

Re: Overwriting an Infotable Property

Doing that:

var original=Things["Thing"].Property;

or that:

var variable=original;

 you don't clone Property contents, you get a reference to it, that's why property it's changing, if you want to work with a cloned copy:

var variable = Resources["InfotableFunctions"].Clone({ t1: original });

View solution in original post

Re: Overwriting an Infotable Property

Hi Carles,

 

That makes sense as far as cloning goes. What troubles me is that operations on a variable in my service only impact infotable type properties. For example, if I use a number property as a reference and then proceed to multiply the variable by 20, in my service, the corresponding property value is not multiplied by 20 unless I assign the variable value to the property.

Re: Overwriting an Infotable Property

Infotable properties indeed are treated a bit different as well as XML and JSON properties.

This is also why you have to specifically write back the full table to update the property if persisted.

Re: Overwriting an Infotable Property

Fair enough. Thanks Pai and Carles!