Partager via


data driven reports and SCOM

There is a product Limitation in SCOM (also 2012 R2 UR2), that if data driven reports were configured, when accessing the scheduled report view, following error message would get logged:

Application: Operations Manager
Severity: Error
Message: Report subscription list could not be loaded.
 
System.Web.Services.Protocols.SoapException: The subscription 'subscriptionID' cannot be found. The subscription identifier that is provided to an operation cannot be located in the report server database. ---> Microsoft.ReportingServices.Diagnostics.Utilities.SubscriptionNotFoundException: The subscription  'subscriptionID' cannot be found. The subscription identifier that is provided to an operation cannot be located in the report server database.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.ReportingService.ReportingService2005.GetSubscriptionProperties(String SubscriptionID, ExtensionSettings& ExtensionSettings, String& Description, ActiveState& Active, String& Status, String& EventType, String& MatchData, ParameterValue[]& Parameters)
   at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.ManagementGroupReporting.GetSubscriptions(String owner)
   at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Views.ReportSubscriptionsView.ReportSubscriptionsView.LoadSubscriptionsJob(Object sender, ConsoleJobEventArgs args)

During the profiler trace, we can see the following query getting executed by the report server:

select
                                                    S.[SubscriptionID],
                                                    S.[Report_OID],
                                                    S.[ReportZone],
                                                    S.[Locale],
                                                    S.[InactiveFlags],
                                                    S.[DeliveryExtension],
                                                    S.[ExtensionSettings],
                                                    SUSER_SNAME(Modified.[Sid]),
                                                    Modified.[UserName],
                                                    S.[ModifiedDate],
                                                    S.[Description],
                                                    S.[LastStatus],
                                                    S.[EventType],
                                                    S.[MatchData],
                                                    S.[Parameters],
                                                    S.[DataSettings],
                                                    A.[TotalNotifications],
                                                    A.[TotalSuccesses],
                                                    A.[TotalFailures],
                                                    SUSER_SNAME(Owner.[Sid]),
                                                    Owner.[UserName],
             CAT.[Path],
             S.[LastRunTime],
             CAT.[Type],
             SD.NtSecDescPrimary,
                                                    S.[Version],
                                                    Owner.[AuthType]
            from
             [Subscriptions] S inner join [Catalog] CAT on S.[Report_OID] = CAT.[ItemID]
             inner join [Users] Owner on S.OwnerID = Owner.UserID
             inner join [Users] Modified on S.ModifiedByID = Modified.UserID
             left outer join [SecData] SD on CAT.[PolicyID] = SD.[PolicyID] AND SD.AuthType = Owner.AuthType
                                                    left outer join [ActiveSubscriptions] A with (NOLOCK) on S.[SubscriptionID] = A.[SubscriptionID] where (S.[EventType] = 'TimedSubscription' OR S.[EventType] = 'SnapshotUpdated')

If you run this manually, you`ll see that the data driven subscriptions have the datasettings parameter with elements populated. The reports that were scheduled via the scom console, have NULL for the datasettings parameter. Apparently the SCOM console can only process scheduled reports with the parameter being NULL.

Please be aware that because there is no official documentation about data driven reports and SCOM supportability, this is a product limitation and not a bug. The error handling for this is just not implemented, therefore the scheduled report view will render no results and just the error above.

Please feel free to vote for a design change request on our connect site, for this issue: https://connect.microsoft.com/