Runtime table data is not visible from the UI

I had a specific case where I need to populate the runtime table with data but from the action. I used this approach:
‘’’
transactionDuplicates.push({
_id: j,
rowIndex: j,
supplierName: values[j][indexSupName],
amount: values[j][indexGrossAmount],
date: values[j][indexDate]
});
‘’’
The approach itself worked and I saw data in the Runtime table, the problem was the UI wasn’t getting the changes, it almost looked like the data is there but is isn’t persisted. So when I use ‘transactionDuplicates.length’ as a case to show something it doesn’t work. But if the windows refreshes on AppFarm change in Dev it works and ‘transactionDuplicates.length’ will return the right value

Hi!

Not quite sure what is set up here. You may both read objects into, and create objects into an existing data source without code (using Read Objects or Create Objects action node).

However, just by the looks of the code, setting the _id and the rowIndex property to j looks incorrct since _id is an ObjectId (random 20 characters string) and j seems to be an integer (the array index).

We have specific implementation which require us populating runtime table from coded component and we ave used this approach of push into transactionDuplicate table. Table is populated but UI doesn’t see that it has data even though we see the data, _id and other data here are pretty much irrelevant ( they get populated too without any issues)

Hi!

I just tested a similar setup.

  1. Having a Projects (runtime) data source, added as a function parameter in a Run Code Action node.
  2. Displaying this data source in a table

After running this action, the object created in 1) displays correctly.
If also works if I add a Persist Objects afterwards. I just need to set the default values myself inside the run code, since when creating objects inside Run Code, you omit all settings for property default values.

So, I believe the problem lies elsewhere (probably in the code). However, when it comes to coding approaces it is harder to support and give a good answer to the problem.

By the way - could it be that you have this code inside a Coded Component that is placed in the same view as the Table? If that is the case, I believe you should use run code instead (or trigger an action from the coded component for populating these data, so that the UI knows that it need to reevaluate).

So the flow goes this way:

This is the real time scenario:


SO there is data in the table but the button is not visible. In the modal with the button there is a button that starts the flow which should add data in the runtime table.

Try a console log of some text string just before that return transactionsLog.length inside the function of that Visibility condition. I would guess it does not print anything when/after the Run Code executes, since I might guess the automatic evaluation of that condition is not necessarily triggered when Run Code population of the datasource happens while that UI already has been drawn and visibility-evaluated initially. You could try to do an Update Object of a property that’s being used by that visibility condition and see if it re-evaluates with that setup.

Let me know if this is the case!

Tried updating all objects after the Run Code, didn’t help and yes you are right I got it working if App refreshed due to AppFarm updates for example, it see the objects in correct way then. Not sure how to make it work, because update object didn’t help.

Hi,

We’ll register a challenge on that on. But we still recommend using Create Object ore Read Objects for populating data sources whenever possible. That will solve it. Also, you may update an App variable in that Action (after the “Run Code” action node, or maybe inside it), setting the variable to TRUE if objects has been created. And change the visibility condition of the Button to evaluate that App variable instead (e.g. App Variable.Objects created Equals true as condition)