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

Community Tip - Your Friends List is a way to easily have access to the community members that you interact with the most! X

Modify InfoTable with Java Edge SDK

LM_10415801
4-Participant

Modify InfoTable with Java Edge SDK

Hello, I have a problem to solve this : I have an Infotable create in Thingworx and I want to use Java Edge SDK in order to enter data in the first row.

Today, I got this : 

ValueCollection row = com.thingworx.crypto.functions.HTTPRequest(pictureFolder, urlHTTP, predictionKey);

FieldDefinitionCollection fields = new FieldDefinitionCollection();
fields.addFieldDefinition(new FieldDefinition(NAME, BaseTypes.STRING));
fields.addFieldDefinition(new FieldDefinition(DATE, BaseTypes.DATETIME));
fields.addFieldDefinition(new FieldDefinition(C, BaseTypes.STRING));
fields.addFieldDefinition(new FieldDefinition(Z, BaseTypes.STRING));

defineDataShapeDefinition("ds", fields);


InfoTable resultInfoTable = new InfoTable(getDataShapeDefinition("ds"));


ValueCollection entry = new ValueCollection();

entry.clear();
entry.SetStringValue(NAME, row.getValue(NAME));
entry.SetDateTimeValue(DATE, row.getValue(DATE));
entry.SetStringValue(C, row.getValue(C));
entry.SetStringValue(Z, row.getValue(Z));

resultInfoTable.addRow(entry.clone());

It seems to work because there is the right datas into resultInfoTable but i cant push the row in my InfoTable property in thingworx, i tried invokeService and writeProperty but didn't work too. I'm really stuck so if somebody know how I can do this it'd be very nice ! 

1 ACCEPTED SOLUTION

Accepted Solutions

I found the solution to do this, I'm gonna write it here for those which are stucked like me, by the way, I modified my code to make it more simple. Indeed, I already tried writeProperty but I guess I did something wrong the last time, but today it work. Here is the solution :

EDIT : into the function in the first line, i got the ValueCollection with all datas I need.

 

 

ValueCollection row = com.thingworx.crypto.functions.HTTPRequest(pictureFolder, urlHTTP, predictionKey); // Take the row into row (ValueCollection)
    	
    	FieldDefinitionCollection fields = new FieldDefinitionCollection();   // Create fields for the infotable
    	fields.addFieldDefinition(new FieldDefinition(NAME, BaseTypes.STRING)); //Name field
        fields.addFieldDefinition(new FieldDefinition(DATE, BaseTypes.DATETIME)); //Date field
        fields.addFieldDefinition(new FieldDefinition(C, BaseTypes.STRING)); //C field
        fields.addFieldDefinition(new FieldDefinition(Z, BaseTypes.STRING)); //Z field
        
        defineDataShapeDefinition("ds", fields); // Defining dataShape name with its fields
        
        
        InfoTable resultInfoTable = new InfoTable(getDataShapeDefinition("ds")); // Create the infoTable with the datashape create previously
        
        
        resultInfoTable.addRow(row.clone()); //add row into the infotable
    	
    	getClient().writeProperty(ThingworxEntityTypes.Things, getName(), "processedImage", new InfoTablePrimitive(resultInfoTable), 10000); // modify the infotable in thingworx

/// write Property --> Things, NAME_OF_THE_THING, NAME_OF_THE_PROPERTY, PRIMITIVE_INFOTABLE(INFOTABLE), 10000 

 

 


Thanks, good bye !

View solution in original post

1 REPLY 1

I found the solution to do this, I'm gonna write it here for those which are stucked like me, by the way, I modified my code to make it more simple. Indeed, I already tried writeProperty but I guess I did something wrong the last time, but today it work. Here is the solution :

EDIT : into the function in the first line, i got the ValueCollection with all datas I need.

 

 

ValueCollection row = com.thingworx.crypto.functions.HTTPRequest(pictureFolder, urlHTTP, predictionKey); // Take the row into row (ValueCollection)
    	
    	FieldDefinitionCollection fields = new FieldDefinitionCollection();   // Create fields for the infotable
    	fields.addFieldDefinition(new FieldDefinition(NAME, BaseTypes.STRING)); //Name field
        fields.addFieldDefinition(new FieldDefinition(DATE, BaseTypes.DATETIME)); //Date field
        fields.addFieldDefinition(new FieldDefinition(C, BaseTypes.STRING)); //C field
        fields.addFieldDefinition(new FieldDefinition(Z, BaseTypes.STRING)); //Z field
        
        defineDataShapeDefinition("ds", fields); // Defining dataShape name with its fields
        
        
        InfoTable resultInfoTable = new InfoTable(getDataShapeDefinition("ds")); // Create the infoTable with the datashape create previously
        
        
        resultInfoTable.addRow(row.clone()); //add row into the infotable
    	
    	getClient().writeProperty(ThingworxEntityTypes.Things, getName(), "processedImage", new InfoTablePrimitive(resultInfoTable), 10000); // modify the infotable in thingworx

/// write Property --> Things, NAME_OF_THE_THING, NAME_OF_THE_PROPERTY, PRIMITIVE_INFOTABLE(INFOTABLE), 10000 

 

 


Thanks, good bye !

Top Tags