利润率示例
更新日期: 2006 年 7 月 17 日
利润率示例是事件驱动的 Microsoft SQL Server Notification Services 应用程序,它为各个雇员生成有关利润率的通知,并将此数据发送给订阅用户。此示例使用 SSAS 事件提供程序来查询 SSAS 数据库,并将结果作为事件返回到 Notification Services 应用程序中。
注意: |
---|
因为未安装 Business Intelligence Development Studio,所以您不能在基于 Itanium 的服务器上运行此示例。 |
应用场景
公司拥有用于分析销售业绩的 SSAS 数据库。当任何分销商超过他们的利润率目标时,销售部门的雇员均可以订阅利润率应用程序来接收通知。
SSAS 事件提供程序将按应用程序中指定的计划运行 MDX 查询来收集事件。运行生成器时,这些事件被添加到历史记录。然后,在满足以下条件时,该生成器从事件历史记录中生成通知:
- 订阅方姓名与事件中的雇员姓名匹配。
- 分销商的毛利润率大于分销商的毛利润率目标。
使用 XSL 转换格式化产生的通知,然后将其发送到文件中。
语言
XML、XSD、XSLT 和 Microsoft Visual C# 或 Microsoft Visual Basic。
功能
SSAS 示例使用 Notification Services 的以下功能:
应用领域 | 功能 |
---|---|
事件类 |
基本事件队列和一个历史记录。 |
订阅类 |
一个事件驱动的订阅类。 |
通知类 |
一个通知类;没有摘要传递或多播传递。 |
事件提供程序 |
两个 SSAS 事件提供程序:一个为静态,一个为动态。 |
内容格式化程序 |
XSLT 内容格式化程序。 |
传递协议 |
文件和 SMTP 传递协议。 |
必备组件
在运行此示例之前,请确保安装了下列软件:
- Microsoft SQL Server 2005,包括下列组件:
- 数据库引擎.
- Notification Services.
- SSAS.
- SQL Server Management Studio.
- Business Intelligence Development Studio。
- AdventureWorksDW 数据库。SQL Server 2005 附带此数据库,此数据库还可以从 SQL Server 开发人员中心网站上获取。有关详细信息,请参阅运行安装程序安装 AdventureWorks 示例数据库和示例。
- Notification Services 示例。这些示例包含在 SQL Server 2005 中。您可以从 SQL Server 开发人员中心网站上下载这些示例的最新版本。
- .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。您可以免费获取 .NET Framework SDK。请参阅安装 .NET Framework SDK。
生成示例
若要生成示例,您需要执行以下操作:
- 部署 SSAS 数据库。
- 创建 Notification Services 实例。
- 注册 Notification Services 实例。
- 授予 SQL Server 和数据库权限。
以下过程显示了如何执行利润率示例的每一项任务。
步骤 1:部署 Adventure Works DW OLAP 数据库
打开 SQL Server Business Intelligence Development Studio,单击**“文件”,指向“打开”,然后单击“项目/解决方案”**。
浏览到 C:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project,选择 Adventure Works DW.dwproj 文件,然后单击**“打开”**。
从解决方案资源管理器中,右键单击 Adventure Works DW 并选择**“部署”**。
步骤 2:创建 Notification Services 的实例。
打开 SQL Server Management Studio,并连接到 SQL Server 实例。
在对象资源管理器中,右键单击 Notification Services 文件夹,然后选择**“新建 Notification Services 实例”**。
在**“新建 Notification Services 实例”对话框中,单击“浏览”**并选择利润率示例的根文件夹中的 InstanceConfig.xml 文件。
在**“参数”**框中,输入以下三个参数的值:
- SampleDirectory 是利润率示例的根文件夹的路径。默认路径是 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin。
- NotificationServicesHost,该参数为本地服务器的名称。
- SQLServer 为 SQL Server 实例的名称。
选中**“创建实例后将其启用”**复选框。
单击“确定”。.
在 Notification Services 创建完实例后,单击**“关闭”**。
注意: |
---|
如果要使用数据库所有者或系统管理员帐户部署 Notification Services 示例,则无需将 SQL Server 权限授予该帐户。授予这些权限可能会导致错误,当然您可以忽略此错误。部署自己的应用程序时,应使用特权较低的帐户,以提高安全性。 |
步骤 3:注册 Notification Services 的实例。
在 SQL Server Management Studio 中,打开 Notification Services 节点,右键单击 ProfitMarginInstance,指向**“任务”,然后选择“注册”**。
在**“注册”对话框中,选中“创建 Windows 服务”**复选框。
Windows 服务将在此计算机上运行 Notification Services 实例。
在**“服务登录”**下,键入 Windows 帐户和密码。这是运行服务所使用的 Windows 帐户。如果使用 Windows 身份验证访问 SQL Server,则 Windows 服务还将使用此帐户连接到 SQL Server。
如果必须使用 SQL Server 身份验证访问 SQL Server,请选择**“身份验证”中的“SQL Server 身份验证”**,然后输入 SQL Server 登录名和密码。
建议您使用 Windows 身份验证。
单击“确定”。.
Notification Services 完成注册实例后,单击**“关闭”**。
步骤 4:授予 SQL Server 和数据库权限
在对象资源管理器中,展开**“安全性”**节点。
如果必须为 Windows 服务创建新的数据库登录帐户,请右键单击**“登录名”,选择“新建登录名”**,然后创建登录帐户:
- 若要使用 Windows 身份验证,请选择**“Windows 身份验证”**,然后输入在注册实例时指定的同一 Windows 帐户。
- 如果必须使用 SQL Server 身份验证,请选择**“SQL Server 身份验证”**,然后输入在注册实例时指定的同一 SQL Server 登录名和密码。
如果 Windows 服务所使用的登录名已具有对 SQL Server 的访问权限,则右键单击该登录名并选择**“属性”**。
在**“登录”对话框的左窗格中,选择“用户映射”**。
授予对 ProfitMarginInstanceNSMain 数据库的权限:
- 在**“映射到此登录名的用户”**框中,选择与 ProfitMarginInstanceNSMain 数据库相邻的框。
- 在**“数据库角色成员身份: ProfitMarginInstanceNSMain”**框中,选择 NSRunService。
授予对 ProfitMarginInstanceProfitMargin 数据库的权限:
- 在**“映射到此登录名的用户”**框中,选择与 ProfitMarginInstanceProfitMargin 数据库相邻的框。
- 在**“数据库角色成员身份: ProfitMarginInstanceProfitMargin”**框中,选择 NSRunService。
单击**“确定”**应用 SQL Server 权限。
授予对 Adventure Works DW 数据库的权限:
- 在 SQL Server Management Studio 中,连接到 SSAS。
- 展开 SSAS Database 文件夹,然后展开 Adventure Works DW。
- 右键单击**“角色”并选择“新建角色”**。
- 在**“角色名称”**框中,输入 ProfitMarginNS。
- 在左窗格中,单击**“成员身份”**并添加用来运行此示例的 Notification Services Windows 服务的帐户。
- 在左窗格中,选择**“多维数据集”**。
- 对于 AdventureWorks 多维数据集,单击**“访问”字段并选择“读取”**。
- 单击**“确定”**应用多维数据集权限。
配置 Events 文件夹的安全性:
- 在 Windows 资源管理器中,找到利润率示例的 Events 文件夹。
- 右键单击 Events 文件夹,选择**“共享和安全”,再选择“安全”**选项卡。
- 单击**“添加”**,然后添加 Windows 服务所使用的帐户。
- 在**“组或用户名”**框中,选择刚才添加的帐户。
- 在**“权限”框中,选择“读取”和“修改”**权限。
- 单击**“确定”**以应用更改。
配置 Notifications 文件夹的安全性:
- 找到利润率示例的 Notifications 文件夹。
- 右键单击 Notifications 文件夹,选择**“共享和安全”,然后单击“安全”**选项卡。
- 单击**“添加”**,然后添加 Windows 服务所使用的帐户。
- 在**“组或用户名”**框中,选择刚才添加的帐户。
- 在**“权限”框中,选择“写”**。
- 单击**“确定”**以应用更改。
生成强名称密钥文件
如果尚未创建强名称密钥文件,则请使用以下说明生成该密钥文件。
生成强名称密钥文件
打开 Microsoft Visual Studio 2005 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”。
- 或 -
打开 Microsoft .NET Framework 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”。
使用更改目录命令 (CD) 将命令提示符窗口的当前目录更改至安装示例的文件夹。
注意: 若要确定示例所在的文件夹,请单击“开始”按钮,依次指向“所有程序”、“Microsoft SQL Server”、“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples 中。 在命令提示符下,运行以下命令以生成密钥文件:
sn -k SampleKey.snk
重要事项: 有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。
运行示例
若要运行示例,请执行以下操作:
- 启动实例。
- 添加订阅方和订阅。
- 在 SSAS 数据仓库中添加事件。
以下过程显示如何执行这些任务,以及如何查看生成的通知。
步骤 1:启动实例
在对象资源管理器中,打开 Notification Services 文件夹。
右键单击 ProfitMarginInstance,然后单击**“启动”**。
步骤 2:添加订阅方和订阅
生成 ProfitMargin 或 ProfitMargin_VB Visual Studio 解决方案
如果使用的是 .NET Framework SDK,请执行以下操作:
- 在**“开始”菜单上,依次指向“所有程序”和 Microsoft .NET Framework SDK v2.0,再单击“SDK 命令提示”**。
- 找到利润率示例的根文件夹。对于默认位置,请键入以下命令:
cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin - 键入以下命令以生成解决方案
[C#]
msbuild ProfitMargin.sln
[Visual Basic]
msbuild ProfitMargin_VB.sln
如果使用是 Visual Studio 2005,请执行以下操作:
- 打开选择的解决方案文件(ProfitMargin.sln 或 ProfitMargin_VB.sln)。
- 按 F6 以生成解决方案。
运行 AddSubscribers.exe。
此文件的默认位置为 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscribers\language\AddSubscribers\bin\Debug。
运行 AddSubscriptions.exe。
C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscriptions\language\AddSubscriptions\bin\Debug。
注意: |
---|
对于生产应用程序,或者如果您正在受限帐户下运行此应用程序,请将应用程序的 SQL Server 登录名添加到实例和应用程序数据库中的 NSSubscriberAdmin 数据库角色。 |
步骤 3:向 Analysis Services 数据仓库添加事件
在 SQL Server Management Studio 中打开**“新建 SQL Server 查询”**窗口。
打开 ProfitMargin/SQL Scripts 文件夹中的 TriggerEvent.sql 文件,以便向 AdventureWorks 数据仓库添加数据。此数据将生成事件。
注意: 如果再次运行此脚本,必须通过更改 SELECT @SalesOrderNumber 字符值来更改 SalesOrderNumber,以添加新的销售订单。 重新处理多维数据集:
- 在 SQL Server Management Studio 对象资源管理器中,单击**“连接”,然后选择“分析服务器”**。
- 在**“连接到服务器”对话框中,在“服务器名称”框中键入承载 AdventureWorksDW 多维数据集的服务器名称,然后单击“连接”**。
- 在对象资源管理器中,依次打开**“分析服务器”**节点和 Databases 文件夹,然后找到 Adventure Works DW/Cubes/Adventure Works/Measure Groups/Reseller Sales。
- 右键单击**“分销商销售”,然后选择“处理”**。
- 单击**“确定”**重新处理分销商销售多维数据集。
步骤 4:查看通知
给 Notification Services 大约 1 分钟的时间来生成通知。
在 Windows 资源管理器中,找到利润率示例的 Notifications 文件夹。您可以找到一个名为 FileNotifications.txt 的文件。该文件包含通知。
找到放置电子邮件的文件夹。通常位于 C:\Inetpub\mailroot 下的一个文件夹中。根据 SMTP 服务器状态,通知应该在 Pickup 文件夹或 Queue 文件夹中。如果运行了 SMTP 服务,则邮件将移动到 Badmail 文件夹中。
删除示例
使用以下过程删除利润率示例。
删除 ProfitMargin 示例
在**“对象资源管理器”**窗格中,打开 Notification Services 文件夹。
右键单击 ProfitMarginInstance,然后选择**“停止”**。
右键单击 ProfitMarginInstance,指向**“任务”,再选择“撤消注册”**。
右键单击 ProfitMarginInstance,指向**“任务”,再选择“删除”**。
请参阅
其他资源
SQL Server Notification Services 示例
保护 Notification Services 的安全
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|