Hello
I am using the version 12.1.20121.1010 of the WPF/DV controls.
I use the XamPivotDataSlicer attached to the same ADOMD data source as for a pivot grid. I set the slicer's "SlicerProvider" property to the ADOMD data source in the data source's LoadDimensionsCompleted event, since setting it at an earlier stage seems not populating the slicer at all. This way, the hierachies are properly populated and I can select a hierachy and also set the level. If a hierarchy exposes mulitple levels, all are shown selected, which is fine. I would then obviously like to actually slice the data by unselecting one of the levels shown, when the dispatcher throws a null reference exception. I also tried setting the "SlicerProvider" property to the ADOMD data source in the data source's LoadCubesCompleted event, with the same results.
I realise that the slicer shows the hierarchy name in both dropdowns, hierarchy and level. All I do is connect to a cube via MSMDPUMP.DLL. The same connection works fine with the Excel data slicer.
Is there a way I can work around this issue? I urgently need the slicer functionality for my customers.
Thanks and best regards,
Frank
Exception Details
Message: Object reference not set to an instance of an object.
Source: InfragisticsWPF4.Olap.Xmla.v12.1
Stack Trace: at Infragistics.Olap.Xmla.XmlaConnection.GetXmlaSoapWebClient[T]() at Infragistics.Olap.Xmla.XmlaDataSource.UpdateSlicerReferenceState(IPivotDataSlicer target) at Infragistics.Olap.Xmla.XmlaDataSource.UpdateSlicersReferenceState(IPivotDataSlicer changeSource) at Infragistics.Olap.Xmla.XmlaDataSource.QueryUpdateSlicersState(IPivotDataSlicer changeSource, IEnumerable`1 changedSlicerItems) at Infragistics.Controls.Grids.XamPivotDataSlicer.UpdateSlicerItems() at Infragistics.Controls.Grids.XamPivotDataSlicer.Deactivate() at Infragistics.Controls.Grids.XamPivotDataSlicer.OnSlicerItemClicked(XamPivotDataSlicerItem slicerItem) at Infragistics.Controls.Grids.XamPivotDataSlicerItem.OnMouseLeftButtonDown(MouseButtonEventArgs e) at System.Windows.UIElement.OnMouseLeftButtonDownThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) at System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
Hello,
Currently the XamPivotDataSlicer is supported by XmlaDataSource and FlatDataSource. We'll consider to add this for Adomd in the upcoming SR.
Regards.Plamen.
Hello Plamen
thanks for your quick response! I changed to Xmla and the slicer works now. My questions then are what is the AdomdDataSource for, what are the benefits of using it for WPF, why is there after all? For local cubes? I just don't understand the differences between the two.
The reason I wanted to use Adomd is because it's giving me the possibility to provide a connection string with a locale ID. I need MS Analysis Services to return the cube data in the language the user selected. Is there a way I can parameterise the XmlaDataSource to support a locale ID?
Is there a potential release date for the next SR?
Thanks a lot for your assistance!
Hi Plamen
Excellent, I realise that I should have searched MSDN regarding XMLA before asking you this kind of questions. But sometimes one just needs to be kicked in the right direction. I am new to all this OLAP stuff and need to find my way round. Thanks a lot for all your help!
Best regards, Frank
Hello Frank,
You can apply all of the supported XMLA properties using XmlaConnectionSettings.DiscoverProperties and XmlaConnectionSettings.ExecuteProperties collections.
Here is a snippet about their usage:
<olap:XmlaConnectionSettings x:Key="xmlaSettings"
ServerUri="http://[your server]/olap/msmdpump.dll">
<!-- Set LocaleIdentifier to French-->
<olap:XmlaConnectionSettings.DiscoverProperties>
<olap:XmlaQueryProperty PropertyName="LocaleIdentifier" Value="1036"/>
</olap:XmlaConnectionSettings.DiscoverProperties>
<olap:XmlaConnectionSettings.ExecuteProperties>
</olap:XmlaConnectionSettings.ExecuteProperties>
</olap:XmlaConnectionSettings>
<olap:XmlaDataSource x:Key="xmlaDataSource"
ConnectionSettings="{StaticResource xmlaSettings}">
</olap:XmlaDataSource>
Please note that the value is passed in its decimal format.
The next SR is intended be a month from now.
Regards.
Plamen.