Table.recordUpdates no longer available?

I'm trying to follow this video on creating a simple CRUD application, and around 6:10, we enter {{tableName.recordUpdates[0]}} but it seems that's no longer an option? How do I go about however they changed this to?

Hi @stuiedaman!

You're correct that the new Table component no longer has a recordUpdates property. Instead, the changed cell values can be accessed via two properties:

  • changesetObject: an object where keys are identifiers for changed rows, and the values are row changesets. Row identifiers are either primary keys, or data indexes based on whether a primary key column is configured.
  • changesetArray: an array of row changesets. This property is most similar to recordUpdates, but is only available when Table has a primary key column configured. Each row's changeset includes its primary key.

If your Table has a primary key column you'll be able to reference the changesetArray property:


Hello @Alexi - are these objects editable ? That would be ideal to add "programmatic" changes i.e. a manual edit would trigger (through transformer or script) more changes to the same row
If not, something to consider or having a method for the same.

Hi @yiga2! I believe you'd need to write some Javascript (e.g. in a Javascript transformer) to transform your changesetArray. Does that sound like it would help? If so, let me know and I'd be happy to get you set up :slight_smile:

@victoria not sure JS helps without a proper function to extend the changes. AAMOF changeSetObject is read-only and there is no setter function. Table only supports/detects manual changes. If you know a way around it, I am all ears !

Btw, I can't use changeSetArray as New table does not support composite primary keys i.e. multi-columns - which is quite common though (separate feature request ?). So I have to use Object().entries to read what I need from the row.

Gotcha! Would something like this be helpful? :slight_smile:

Hi, I'm new in retool..

after updating a value there is a blue arrow on the changed cell.. why? is it possible to remove it right after the update without refreshing the table? (values are being changed correctly in the database)

you should use table1.clearSelection() to remove the select.
add it to script of your success event handler of you update query.

thnx! but it does not solve it..

Hi @fil what about table2.clearChangeset()?

ClearChangeset removes the select, but changes won’t be update, they change back at the last saved value..

now i tried with table2.refresh()
but first it changes back to prior value and then back to the actual value.. strange.. video attached

Hi @fil

It may be helpful to see screenshots of the current set up. Based on my own testing, it looks like it's a seamless update if you call the select query that populates the table on success of the update query (not tableName.refresh(), but rather queryName.trigger()):

And then clear the table's changeset on success of that select query:

Let me know if that won't work for your case!

sry I don't get it..

Hi @fil Are the queries being triggered on cell change? If so, can we see the change cell event handler as well?

It looks like the query, progetti, is the one populating the table (not query4) so that will need to be in the success handler for query3

Hi @Alexi , Thank you for replying to this. Can you provide an example of how we could perform updates similar to the video that used the old recordUpdates property with the new properties you mentioned? Thank you.

Hi @JanethGraziani are you looking to get the full row for each record in the changeset array? If so, you can check this setting on: