Perspective Table: binding data breaks default column sortorder

When using a script written through an expression transform to generate data and bound to the “data” node on a Perspective Table, the “columns.0.sort” property is ignored when viewing the deployed view; when previewing the view in the Designer, the sort is applied correctly.

Moving the script to an expression transform, which is bound to a custom value in the root coordinate container, and binding the “data” node of the table to this custom coordinate container property, the sort is correctly displayed.

Moving the script to an expression transform, which is bound to a custom value in the view, and binding the “data” node to this property breaks it again.

Based on the above data, I suspect there is an order of operations issues here, where the sort Order function is not happening after the data is generated by the script.

The script may take up to 5 seconds to execute, if timing is a cause. As noted above, having the script run at the container level seems to block the table from loading until the script completes and thus the sortOrder of the data is shown properly?

Using version 8.0.12

It appears to be a larger issue than I thought; the issue appears to be tied to when binding the “data” variable. See below for the steps to recreate:

  1. Create a new view
  2. Drop in a tab container
  3. Drop in a coordinate container into the first tab
  4. On the first tab, place two tables side-by-side
  5. Copy the data from the default table and put into a Document Memory Tag
    NOTE: I couldn’t find how to paste the data directly into a document tag, so I made the tag a string, pasted the data, then changed to Document
  6. On the first table, bind the “data” property of the table to the Memory tag
  7. On both tables, do the following:
    *Add 3 column objects
    *Label the last one population
    *change sortorder to ascending
    *change numberFormat to “none”, because it appears that the formatting function outputs a string and the sort is on the string value, not the numeric value ref. [BUG-15644]
  8. Deploy the view and load in browser
  9. Observe that the table with the data built-in shows the population sort-order implemented
  10. Observe that the table with the data bound to a Memory tag does not implement the sort-order
  11. Click the 2nd, empty tab
  12. Click back to the 1st tab with the tables
  13. Observe that both tables implement the population sort-order

NOTE: Sort-order isn’t the only property that is affected by this. If you set the “activePage” property under “pager” to “2” (not default of 1), it exhibits the same behavior.

After first load of the View:

After clicking 2nd tab and clicking back to 1st tab: