Custom Item Troubleshooting
- 6 minutes to read
The article describes how to resolve possible issues when you create or integrate a custom item into your project.
Metadata Issues
Data Sections are not Displayed in the Data Items Pane
You created data item sections in metadata, but they are not displayed in the UI.
How to Solve This Issue
- Ensure that each data section is a public property in metadata.
- Ensure that each data section property has the Measure/Dimension or MeasureCollection/DimensionCollection type.
A Dashboard Control does not Update Metadata Changes in the UI
You changed or deleted a data item in the UI, but the custom item still displays old data.
How to Solve This Issue
- Make sure that you correctly declared metadata properties.
Ensure that the
Measure
andDimension
property declarations include the GetPropertyValue and SetPropertyValue methods.Make sure that Measure and Dimension collections are readonly.
Interactivity Issues
Master Filtering does not Synchronize with the Maximized Custom Item State
The selected custom item element is unselected when you maximize the custom item.
How to Solve This Issue
Make sure that the SetSelection method is called, and the control’s elements are selected in this method.
For example, the following code updates a custom control according to the current master filter selection for the custom Funnel item:
protected override void SetSelection(CustomItemSelection selection){
chart.ClearSelection();
foreach (DashboardFlatDataSourceRow item in selection.GetDashboardFlatDataSourceRows(flatData))
chart.SelectedItems.Add(item);
}
Master Filter State does not Synchronize with the Master Filter or Drill-Down Selection
When you use a custom item to filter a dashboard item, the filter is applied but the custom item element is unselected.
How to Solve This Issue
Make sure the SetSelection method is called and you manage the control’s element selection in the
SetSelection
method.Make sure that methods in which you implement master filtering and drill-down logic are called, and you pass the correct parameters to the SetMasterFilter or PerformDrillDown method.
Ribbon Bars Issues
Custom Item Bars are not Displayed in the Ribbon
Custom item bars are not displayed in the UI.
How to Solve This Issue
- Make sure that you registered metadata for the corresponding custom item in the CustomItemMetadataTypes collection.
- Ensure that you call the CreateCustomItemBars method after the Ribbon is created.
Custom Item Icon is not Displayed in the Ribbon
A custom item button does not display its icon.
How to Solve This Issue
Make sure that the icon file’s Build Action property is set to Embedded Resource.
- If the icon is in the same assembly where the CustomItemMetadata object is defined, make sure that the correct file path is passed as an argument to the CustomItemImageAttribute constructor. Call the Assembly.GetManifestResourceNames method to return the names of all resources in the assembly.
- If the icon is in another assembly, pass both the icon’s file path and any class type from the assembly where the file is located to the
CustomItemImageAttribute
constructor.
Master Filter and Drill-Down Buttons are not Displayed in the Ribbon
Master Filter and Drill-Down buttons are not displayed in the Ribbon’s Data page for a custom item.
How to Solve This Issue
Make sure that you apply SupportInteractivityAttribute to the interactive Dimension property in metadata.
Visualization Issues
The CustomDashboardItemControlCreating Event does not Occur
The event does not occur when a dashboard control visualizes a custom item.
How to Solve This Issue
Make sure that you registered metadata for the corresponding custom item in the CustomItemMetadataTypes collection.
Dashboard Item Configuration Error Occurs When You Create a Custom Item in the UI
The CustomDashboardItemConfigurationException is raised and the following message appears:
Dashboard item configuration error. Please contact the application vendor or system administrator for assistance.
How to Solve This Issue
Catch CustomDashboardItemConfigurationException to obtain the description of possible issues.
Custom Control does not Synchronize with Data Item State
A custom control that visualizes a custom item does not update custom item data once you change it in the UI.
How to Solve This Issue
Make sure that the UpdateControl method is called when a custom item’s data or settings change. Update all properties and objects initialized in the method and ensure that the custom control uses them.
For example, the following code binds a custom Sankey chart item to data:
protected override void UpdateControl(CustomItemData customItemData) {
multiDimensionalData = customItemData.GetMultiDimensionalData();
flatData = customItemData.GetFlatData(new DashboardFlatDataSourceOptions() { AddColoringColumns = true, AddDisplayTextColumns = true });
ClearBindings();
SetDataBindings(flatData);
}
void ClearBindings() {
sankey.DataSource = null;
sankey.Colorizer = null;
sankey.SourceDataMember = null;
sankey.TargetDataMember = null;
sankey.WeightDataMember = null;
}
void SetDataBindings(DashboardFlatDataSource flatData) {
sankey.SourceDataMember = flatData.GetDisplayTextColumn(dashboardItem.Metadata.Source.UniqueId).Name;
sankey.TargetDataMember = flatData.GetDisplayTextColumn(dashboardItem.Metadata.Target.UniqueId).Name;
if(dashboardItem.Metadata.Weight != null)
sankey.WeightDataMember = dashboardItem.Metadata.Weight.UniqueId;
try {
sankey.DataSource = flatData;
} catch {
sankey.DataSource = null;
}
}
Data Formatting Issues
Possible Issues
- The GUID is shown instead of “Others”
- When you enable Top N with the Show “Others” value option, the GUID is displayed in a custom item instead of “Others” value.
- Group Intervals display unformatted values
- Numeric values or unformatted DateTime values are shown instead of Group Intervals (such as Quarter, Month, Year-Quarter, and so on).
- Measure formatting is not applied
- Custom item data contains unformatted measure values.
How to Solve These Issues
The DashboardFlatDataSource object contains data columns with unformatted measure and dimension values. You can use display text columns to visualize formatted values in the resulting custom item’s view. Replace data item values with their display text and visualize it in a custom item. To accomplish this, refer to detailed description in the following methods:
Catch the CustomDashboardItemConfigurationException Exception
Catch CustomDashboardItemConfigurationException to identify which errors have occurred during dashboard initialization.
You can do it in the following ways:
Use the Visual Studio Exception Settings dialog.
Check the Common Language Runtime Exceptions check box in Exception Settings:
Deselect the Enable Just My Code option:
The exception occurs when you run the application:
Handle the FirstChanceException event.
To catch
CustomDashboardItemConfigurationException
in code, handle theAppDomain.FirstChanceException
event at application start:using System.Runtime.ExceptionServices; // ... static void Main(){ AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException; // ... Application.Run(new Form1()); } private static void CurrentDomain_FirstChanceException(object sender, FirstChanceExceptionEventArgs e){ }
The following window shows the exception message: