Releases: tableau/extensions-api
Extensions v1.15.0
In this release
- Added
Cloud,PublicWeb, andPublicDesktopas environment context values. - Added
sendDialogMessageAsyncmethod andDialogMessageReceivedevent to the UI namespace (Cloud / Server only). closeDialogcan now be called from the extension frame to forcefully close the dialog.- See other details in: https://tableau.github.io/extensions-api/docs/trex_release-notes/.
Extensions v1.15.0 (beta)
In this release
- Added
Cloud,PublicWeb, andPublicDesktopas environment context values. - Added
sendDialogMessageAsyncmethod andDialogMessageReceivedevent to the UI namespace (Cloud / Server only). closeDialogcan now be called from the extension frame to forcefully close the dialog.- See beta release notes: https://tableau.github.io/extensions-api/gh-pages-dev/docs/trex_release-notes/
Note: beta release files are located under lib/beta folder
Extensions v1.14.0
In this release
- Added
hasAliasandaliasValueattributes toDataValue. - Fixed bug when calling
getAllDataSourcesAsyncon a workbook with no worksheets. - Fixed a bug where calling
applyRangeFilterAsyncwith a max or min of 0 would throw an error. - See other details in https://tableau.github.io/extensions-api/docs/trex_release-notes.
Extensions v1.13.0
In this release
- Added
WorksheetFormattingChangedevent to worksheet. - Added
backgroundColorandformattingproperties to worksheet. - Added
applyWorksheetFormattingas optional parameter toGetSummaryandGetUnderlyingdata APIs. - See other details in https://tableau.github.io/extensions-api/docs/trex_release-notes.
Extensions v1.12.1
In this release
- Fixed backwards compatibility issues present in
v1.12.0. - The same backwards compatibility issues are also present in
v1.11.0.v1.11.1, which fixes the issues, can be found in the previous releases folder.
Extensions v1.12.0
In this release
- Viz Extensions' first ever public release.
- Introduces the new
worksheetobject for Viz Extensions accessible viatableau.extensions.worksheetContent.worksheet. - Added
getTooltipTextAsynctoworksheet. - Added
leaveMarkNavigationAsynctoworksheet. - Added
hoverTupleAsynctoworksheet. - Added
selectTuplesAsynctoworksheet. - Implemented
Field.ColumnType. - Added
isGeospatialattribute toField. - Fixed a bug to allow a
Fieldto have datatype =DataType.Spatial. - [For trex files] Added support for custom encoding icons, as well as localizable encoding and tooltip
strings - [For trex files] Added support for the Format Extensions button in the Marks Card area
- See other details in https://tableau.github.io/extensions-api/docs/trex_release-notes.
Extensions v1.11.0
In this release
- Added
Environment.uniqueUserId. - Added the
SummaryDataChangedevent type. - Added the
Worksheet.getVisualSpecificationAsyncmethod. - Fixed bug in
getSelectedMarksAsyncwhich would causeformattedValueto be incorrect in multi
pane scenarios. - Added experimental features as part of Viz Extensions Pre-Release.
- See other details in https://tableau.github.io/extensions-api/docs/trex_release-notes.html.
Extensions v1.10.0
In this release
- Updates to the input specification for
createVizImageAsync. This release includes support for combination charts, charts with multiple mark types in the same visualization (requires Tableau 2022.4+). - Adds support for a
DataTableReaderto support pagination (requires Tableau 2022.4+). - Deprecated
Worksheet.getSummaryDataAsync. UseWorksheet.getSummaryDataReaderAsync. UI.displayDialogAsyncnow supports different dialog styles (window, modal or modeless dialog boxes).- Adds support for annotating marks with
Worksheet.annotateMarkAsync,Worksheet.getAnnotationsAsync, andWorksheet.removeAnnotationAsync. - Map file is now included for better debugging experience with minified library.
- See other details in https://tableau.github.io/extensions-api/docs/trex_release-notes.html.
DataTableReader Introduction
There has always been a 10k row limit on getUnderlyingTableDataAsync and on
getLogicalTableDataAsync, and for large worksheets, getSummaryDataAsync can prove to be
unreliable.
Introducting DataTableReader! Starting with Tableau 2022.4 and Extensions v1.10.0,
DataTableReader provides an API to request data a page at a time.
Fetching a DataTableReader
To get a DataTableReader use one of the new functions: getSummaryDataReaderAsync,
getUnderlyingTableDataReaderAsync, or getLogicalTableDataReaderAsync. The parameters to these
functions include the GetSummaryDataOptions or GetUnderlyingDataOptions, but also include a page
row count. This parameter sets the size of pages that will be returned. The default, and maximum,
page size is 10,000 rows.
Using a DataTableReader
Converting your code to use a DataTableReader is straightforward.
The following:
const dataTable = await this.worksheet.getSummaryDataAsync();
// ... use dataTable ...
becomes:
const dataTableReader = await this.worksheet.getSummaryDataReaderAsync();
const dataTable = await dataTableReader.getAllPagesAsync();
await dataTableReader.releaseAsync();
// ... use dataTable ...
Or alternatively:
const dataTableReader = await this.worksheet.getSummaryDataReaderAsync();
for (let currentPage = 0; currentPage < dataTableReader.pageCount; currentPage++) {
const currentPageDataTable = await dataTableReader.getPageAsync(currentPage);
// ... process currentPageDataTable ...
}
await dataTableReader.releaseAsync();
Limits on a DataTableReader
Unfortunately, we still live a a world with limited computing resources. A DataTableReader consumes
server resources. Therefore, there are still limits on the number of rows supported for underlying
and logical data table readers. The default limit is approximately 1 million rows of data for
getUnderlyingTableDataReaderAsync, and approximately 32 million cells (rows * columns) for
getLogicalTableDataReaderAsync. Server administrators (starting in 2023.1) may change these limits to better match
computing resources with the Tableau Server (Cloud) or Tableau Desktop options:
- ExtensionsAndEmbeddingReaderRowLimit for
getUnderlyingTableDataReaderAsyncor - ExtensionsAndEmbeddingReaderCellLimit for
getLogicalTableDataReaderAsync.
Hints on using a DataTableReader
- If you are dealing with large amounts of data, set the columns to include, or the
IncludeDataValuesOptionto what you need. Fetching all columns, or requesting formatted data
when you don't need various column or formatted data take significantly more time and resources.
The optionIncludeDataValuesOption.OnlyNativeValuesis your friend for very large underlying or logical
table data. - Only one
DataTableReaderper logical table id is supported. - Call
DataTableReader.releaseAsync()when you are done processing the data. You can always
request another one if you need to do more processing after some period of inactivity or user
action.
Extensions v1.9.0
Changes in the Dashboard Extensions API:
- Added the
Filter.getAppliedWorksheets()andFilter.setAppliedWorksheets()methods. - Added the
Dashboard.getFiltersAsync()andDashboard.applyFilterAsync()methods. - Added the
Worksheet.applyRelativeDateFilterAsyncmethod. - Support for Tableau and Benton Sans fonts. You can now load these fonts during initialization.
For more information, see the Release Notes for Tableau Dashboard Extensions API version 1.9.0.
Extensions v1.8.1
Changes in the Dashboard Extensions API:
- Bug fixes
- Documentation updates
For more information, see the Release Notes for Tableau Dashboard Extensions API version 1.8.1.