Map view-order column positions onto the data table's alphabetical ones.
DataTableReader sorts its columns alphabetically and offers no way to ask
for view order, while getSummaryColumnsInfoAsync is in view order and
carries no data. Matching them by fieldId — as Tableau's own snippet does —
is the only bridge. fieldName is tried second so a host that omits
fieldId degrades to a working read rather than to no columns at all.
Map view-order column positions onto the data table's alphabetical ones.
DataTableReadersorts its columns alphabetically and offers no way to ask for view order, whilegetSummaryColumnsInfoAsyncis in view order and carries no data. Matching them byfieldId— as Tableau's own snippet does — is the only bridge.fieldNameis tried second so a host that omitsfieldIddegrades to a working read rather than to no columns at all.