Applicable Versions: All


In version 5.50.0072, we released a change to improve the handling of source data (the raw data returned by the query) in the dashboarddesigner control. Most objects on a dashboard will build their own partial summary data, and as such unless they are going to be edited they do not require the source data from which they've been built (see here for details on when an object cannot build partial summary data). If all objects on the dashboard have partial summary data, it is not necessary to load the source data to simply view the dashboard. Since this source data often accounts for the largest proportion of the memory used to load a dashboard, not loading it can significantly increase the size of a dashboard that can be loaded without causing out of memory errors. 


As such, a new property ViewerSourceDataHandling has been added to the control to allow the developer to dictate when and if this source data is loaded. This property is an enumerated type, DashboardDesigner.ViewerSourceDataHandlingEnum and has the following possible values;


 

Member NameValueDescription
Cache0If a dashboard is opened in a viewer only client (see details here), the source data will not be loaded into memory. However, it will be written to a temporary file on disk, and loaded on demand if required. This is the default value for the property. This setting will cause the opening of the dashboard to be slightly slower than if loaded without data (for example around half a second slower from 1.5 million rows of data), but will allow the editing and saving of the dashboard if required.
Load1The source data will always be loaded for a dashboard. This setting is the slowest to open a dashboard, and will use the most memory, however will support all functions of the dashboard.
No Data2If a dashboard is opened in a viewer only client (see details here), the source data will not be loaded into memory and will not be available unless the dashboard is re-opened. This setting will be the fastest to load, but will prevent any editing of the dashboard objects and cause a warning message if the dashboard is saved.


The following situations will cause the dashboard to always load source data;

  1. The DashboardDesigner ViewerOnly property is set to false.
  2. The DashboardDesigner ShowDataViewersWhenViewerOnly property is set to true.
  3. The dashboard contains any object with the iteration type set to for each record.
  4. The dashboard contains any objects with a filter condition that filters an object against a column selected as a summary column.
  5. The dashboard contains any objects with a drill down set to show the source data related to the area of the chart, pivot table or gauge clicked.
  6. The dashboard contains any calculated columns that are dependent on a filter parameter value.

The Manageddashboard.RequiresSourceData property will return true if a dashboard will always load source data. If you are unsure as to why your dashboard requires source data, a search through each object on the dashboard looking for any objects where the DashboardObject.RequiresSourceData property is true will give you more information.

Below are examples of how to set the 
ViewerSourceDataHandling propery to No Data;

ABL GUI (AppBuilder)

chDashboardDesigner:ViewerSourceDataHandling=2.

.NET For GUI (Architect)
DashboardDesigner:ViewerSourceDataHandling=DashboardDesigner+ViewerSourceDataHandlingEnum:NoData


Visual Studio (VB.NET/C#)
DashboardDesigner.ViewerSourceDataHandling = DashboardDesigner.ViewerSourceDataHandlingEnum.NoData