That error indicates that the underlying JS object being edited by the dataset doesn't have a property ProductId, or that there is no underlying object.
I have tracked down the issue. It's not on the dataset side it's on the array side.
I have a call that retrieves a TJSObject from a TJSArray and then call Properties['Id']. however, javascript has converted this into an actual object, so properties doesn't exist. I can call lProduct.Id and that is correct, but the webcore app won't compile with that call.
Ok, That was a possible error, but not this error.
This is a rookie error - the dataset was not in edit mode.
I would expect a 'Dataset not in edit mode' error not some Null error.
It was raised in TBaseJSONDataSet.SetFieldData where R (FEditRow) is undefined. The Buffer passed into that routine is the correct record, although that isn't used in the method - actually the line that used it is commented out as it seems to be replaced by FEditRow.