Таблица подписок SSRS и представление ExecutionLog3 - PullRequest
0 голосов
/ 24 апреля 2019

У нас есть много отчетов, которые имеют несколько подписок, и я хочу иметь возможность следить за выполнением, выполняя запросы к таблице подписок и представлению ExecutionLog3.

Кажется, что между таблицей и таблицей нет очевидной связиview.

Один конкретный отчет имеет одну управляемую данными подписку.Отчет выполняется несколько раз с различным значением параметра каждый раз.Я особенно хочу следить за ходом этой подписки.Я хочу быть в состоянии определить, когда это не удается, когда и какой параметр использовался.

Я наткнулся на возможное решение здесь , но он принял неправильный ответ - см. Комментарии

1 Ответ

1 голос
/ 24 апреля 2019

Посмотрите, работает ли это для вас ... Я использовал это в течение достаточно долгого времени.

    SELECT USR.UserName COLLATE Latin1_General_100_CI_AS_KS_WS AS SubscriptionOwner 
          ,SUB.ModifiedDate  as ModifiedDate
          ,SUB.[Description] COLLATE Latin1_General_100_CI_AS_KS_WS As Description
          ,SUB.EventType COLLATE Latin1_General_100_CI_AS_KS_WS as EventType
          ,SUB.DeliveryExtension COLLATE Latin1_General_100_CI_AS_KS_WS As DeliveryExtension
          ,SUB.LastStatus COLLATE Latin1_General_100_CI_AS_KS_WS as LastStatus
          ,SUB.LastRunTime  As LastRunTime
          ,SCH.NextRunTime  As NextRunTime
          ,SCH.Name    COLLATE Latin1_General_100_CI_AS_KS_WS    AS ScheduleName
          ,CAT.[Path]  COLLATE Latin1_General_100_CI_AS_KS_WS AS ReportPath
          ,CAT.[Description] COLLATE Latin1_General_100_CI_AS_KS_WS AS ReportDescription
          ,CAT.Name COLLATE Latin1_General_100_CI_AS_KS_WS AS ReportName
    FROM ReportServer.dbo.Subscriptions AS SUB 
         INNER JOIN ReportServer.dbo.Users AS USR 
             ON SUB.OwnerID = USR.UserID 
         INNER JOIN ReportServer.dbo.[Catalog] AS CAT 
             ON SUB.Report_OID = CAT.ItemID 
         INNER JOIN ReportServer.dbo.ReportSchedule AS RS 
             ON SUB.Report_OID = RS.ReportID 
                AND SUB.SubscriptionID = RS.SubscriptionID 
         INNER JOIN ReportServer.dbo.Schedule AS SCH 
             ON RS.ScheduleID = SCH.ScheduleID 
         INNER JOIN ReportServer.dbo.ExecutionLog3 EX 
            ON Cat.Path = EX.ItemPath AND EX.RequestType = 'Subscription'
    ORDER BY 1,10 
...