//Inside process scan request ValueCollection itRow = new ValueCollection(); for (java.util.Map.Entry> entry : counterMap.entrySet()) {//takes values from a java map to TW infotable(counterIT) itRow.put("CounterID", new IntegerPrimitive(entry.getKey())); itRow.put("CounterTot", new IntegerPrimitive(entry.getValue().get(0))); itRow.put("CounterTotGood", new IntegerPrimitive(entry.getValue().get(1))); itRow.put("CounterTotBad",new IntegerPrimitive(entry.getValue().get(2))); //System.out.println("Counter Row : " + itRow.toJSON().toString()); counterIT.addRow(itRow.clone()); } //this.setProperty(counterPropName, new InfoTablePrimitive(counterIT));//this did not worked for updating already sent values.However, for first time this works this.getClient().writeProperty(ThingworxEntityTypes.Things, this.getBindingName(), counterPropName, new InfoTablePrimitive(counterIT), 1000);//works everytime this.updateSubscribedProperties(10000);