3

У меня очень простой отчет в SSRS, который представляет собой таблицу с тремя столбцами, именем объекта, учетной записью клиента и датой истечения срока действия.Автоматическая настройка абонентской подписки в SSRS

В моем отчете я включаю фильтр UserID, чтобы ограничить данные только зарегистрированными учетными записями пользователей пользователя.

Я храню учетные записи пользователя пользователя в простой таблице с доменом \ alias | поля учетной записи клиента, которые заполняются из пакета SSIS.

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

Возможно ли это?

Я недавно обнаружил Report Server Web Service, и я думаю, что это может помочь. Могу ли я настроить новые подписки здесь? В идеале я хотел бы сделать это в моем пакете SSIS, когда будет идентифицирована новая учетная запись клиента.

Также обратите внимание, я не верю, что данные ведомые подписки будут работать по нескольким причинам:
1) Я с помощью параметра UserID для фильтрации отчета
2) Я хотел бы, чтобы пользователи смогли управлять подпиской на себя, как только он будет создан под «Мои подписки»

UPDATE
я смог успешно создать подписку на себя с помощью веб-сервиса (смотрите ниже), и я все еще глядя в хо ж это может быть сделано для других пользователей, хотя это не очень хорошо:

ReportingService2010SoapClient service = new ReportingService2010SoapClient(); 
service.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; 
TrustedUserHeader userHeader = new TrustedUserHeader(); 

string desc = "Send to Document Library"; 
string eventType = "TimedSubscription"; 
string scheduleXml = 
     @"<ScheduleDefinition>" + 
     " <StartDateTime>2010-11-30T08:00:00-08:00" + 
     " </StartDateTime>" + 
     " <WeeklyRecurrence>" + 
     "  <WeeksInterval>1</WeeksInterval>" + 
     "  <DaysOfWeek>" + 
     "   <Monday>True</Monday>" + 
     "  </DaysOfWeek>" + 
     " </WeeklyRecurrence>" + 
     "</ScheduleDefinition>"; 

ParameterValue[] extensionParams = new ParameterValue[4]; 

extensionParams[0] = new ParameterValue(); 
extensionParams[0].Name = "TO"; 
extensionParams[0].Value = "my alias"; 

extensionParams[1] = new ParameterValue(); 
extensionParams[1].Name = "IncludeReport"; 
extensionParams[1].Value = "FALSE"; 

extensionParams[2] = new ParameterValue(); 
extensionParams[2].Name = "IncludeLink"; 
extensionParams[2].Value = "TRUE"; 

extensionParams[3] = new ParameterValue(); 
extensionParams[3].Name = "Subject"; 
extensionParams[3].Value = "@ReportName was executed at @ExecutionTime"; 



string matchData = scheduleXml; 
ExtensionSettings extSettings = new ExtensionSettings(); 
extSettings.ParameterValues = extensionParams; 
extSettings.Extension = "Report Server Email"; 

string id; 
service.CreateSubscription(userHeader, "/report path/report name", 
          extSettings, desc, eventType, matchData, null, out id); 

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

NetworkCredential credentials = new NetworkCredential("alias", "", "userdomain"); 
service.ClientCredentials.Windows.ClientCredential = credentials; 

или другой вариант, я обнаружил, что не требует пароля, но бросает COM исключение:

WindowsIdentity wi = new WindowsIdentity("[email protected]"); 
WindowsImpersonationContext ctx = null; 
ctx = wi.Impersonate(); 
+0

Можно ли добавить записи в таблицу БД для достижения этой цели? – earthling 2010-11-30 21:40:36

ответ

0

Законченное используя пользовательское решение, которое, в настоящее время, будет требовать у администратора для управления подписками пользователя.

0

Re: Я не верю, управляемые данными подписки будет работать по нескольким причинам:

1) Я использую параметр UserID для фильтрации отчета 2) Я хотел бы, чтобы пользователи могли управлять подпиской на себя, когда он будет создан в рамках «Мои подписки»

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

1) создать веб-форму для управления таблицей, которая управляет подпиской. Я имею в виду, я мог бы сделать это в Dreamweaver через 10 минут.

2), так что передать параметр, я предполагаю, что я не понимаю ваши сомнения

Смежные вопросы