gpt4 book ai didi

sql-server - 在SSRS中自动设置用户的订阅

转载 作者:行者123 更新时间:2023-12-03 09:48:48 24 4
gpt4 key购买 nike

我在SSRS中有一个非常简单的报告,该报告只是一个包含三列的表,一个对象名称,客户帐户和到期日期。

在我的报告中,我按用户ID进行了筛选,以将数据限制为仅登录用户的客户帐户。

我将用户的客户帐户存储在带有domain \ alias |的简单表中。从SSIS包填充的客户帐户字段。

当新别名|在输入客户帐户关联后,我还想为此别名设置报告的订阅,以便在更新时通知他们。

这可能吗?

我最近发现了Report Server Web Service,我认为这可能会有所帮助。我可以在这里设置新的订阅吗?理想情况下,当我确定一个新的客户帐户时,我想在我的SSIS程序包中对此进行调用。

另请注意,我不认为数据驱动的订阅会因以下几个原因而起作用:
1)我正在使用UserID参数过滤报告
2)我希望用户可以在“我的订阅”下创建订阅后自行管理他们的订阅

更新
我已经能够使用Web服务成功为自己创建订阅(请参见下文),尽管效果并不理想,我仍在研究如何为其他用户完成订阅:

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("alias@fqdn");
WindowsImpersonationContext ctx = null;
ctx = wi.Impersonate();

最佳答案

回复:我不认为数据驱动的订阅会因以下几个原因而起作用:

1)我正在使用UserID参数过滤报告
2)我希望用户可以在“我的订阅”下创建订阅后自行管理他们的订阅

嗯..我非常确定数据驱动订阅将满足您的需求,我认为我可以在几分钟内解决这两个问题。

1)建立一个网络表单来管理驱动订阅的表。我的意思是,我可以在Dreamweaver中在10分钟内完成此操作。

2)这样传递参数,我想我不明白你的犹豫

关于sql-server - 在SSRS中自动设置用户的订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com