更新: 2006 年 7 月 17 日
「獲利率」範例是事件驅動的 Microsoft SQL Server Notification Services 應用程式,為個別員工產生有關獲利率的通知並將此資料傳送給訂閱使用者。此範例使用 SSAS 事件提供者查詢 SSAS 資料庫,並將結果當作事件傳回至 Notification Services 應用程式。
附註: |
|---|
| 因為 Itanium 系列伺服器上沒有安裝 Business Intelligence Development Studio,所以無法執行在此伺服器上執行此範例。 |
狀況
公司具有用於分析銷售績效的 SSAS 資料庫。「銷售」部門的員工可以訂閱「獲利率」應用程式,當這些員工的任何轉售商超出其獲利率目標時即會接收通知。
SSAS 事件提供者會按應用程式中指定的排程執行 MDX 查詢以收集事件。當產生器執行時,會將這些事件加入紀事輯中。若符合下列條件,產生器隨後會從事件紀事輯產生通知:
- 訂閱者的名稱符合事件中員工的名稱。
- 轉售商的毛利率大於其毛利率目標。
使用 XSL 轉換格式化產生的通知,然後傳送至檔案。
語言
XML、XSD、XSLT 和 Microsoft Visual C# 或 Microsoft Visual Basic。
功能
SSAS 範例使用下列 Notification Services 功能。
| 應用程式區 | 功能 |
|---|---|
事件類別 |
基本事件佇列和一個紀事輯。 |
訂閱類別 |
一個事件驅動的訂閱類別。 |
通知類別 |
一個通知類別,無摘要傳遞或多重傳遞。 |
事件提供者 |
兩個 SSAS 事件提供者,一個是靜態的而另一個是動態的。 |
內容格式器 |
XSLT 內容格式器。 |
傳遞通訊協定 |
File 和 SMTP 傳遞通訊協定。 |
必要條件
執行此範例之前,請確定已安裝下列軟體:
- Microsoft SQL Server 2005,包括下列元件:
- Database Engine.
- 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 [資料庫] 資料夾,然後展開 [Adventure Works DW]。
- 以滑鼠右鍵按一下 [角色],並選取 [新增角色]。
- 在 [角色名稱] 方塊中,輸入 ProfitMarginNS。
- 在左窗格中,按一下 [成員資格],並加入用來執行此範例之 Notification Services Windows 服務的帳戶。
- 在左窗格中,選取 [Cubes]。
- 針對 AdventureWorks Cube,按一下 [存取] 欄位,並選取 [讀取]。
- 按一下 [確定] 以套用 Cube 權限。
設定 [事件] 資料夾的安全性:
- 在 [Windows 檔案總管] 中,尋找「獲利率」範例的 [事件] 資料夾。
- 以滑鼠右鍵按一下 [事件] 資料夾,選取 [共用和安全性],然後選取 [安全性] 索引標籤。
- 按一下 [加入],加入 Windows 服務所使用的帳戶。
- 在 [群組或使用者名稱] 方塊中,選取剛才加入的帳戶。
- 在 [的權限] 方塊中,選取 [讀取] 和 [修改] 權限。
- 按一下 [確定] 以套用這些變更。
設定 [通知] 資料夾的安全性:
- 尋找「獲利率」範例的 [通知] 資料夾。
- 以滑鼠右鍵按一下 [通知] 資料夾,選取 [共用與安全性],然後選取 [安全性] 索引標籤。
- 按一下 [加入],加入 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 Development Center 中的<Security Briefs: Strong Names and Security in the .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。 重新處理 Cube:
- 在 SQL Server Management Studio 物件總管中,按一下的 [連接],然後按一下 [Analysis Server]。
- 在 [連接到伺服器] 對話方塊的 [伺服器名稱] 方塊中,輸入裝載 AdventureWorksDW Cube 的伺服器名稱,然後按一下 [連接]。
- 在 [物件總管] 中,開啟 [Analysis Server] 節點,開啟 [資料庫] 資料夾,然後尋找 Adventure Works DW/Cubes/Adventure Works/Measure Groups/Reseller Sales。
- 以滑鼠右鍵按一下 [轉售商銷售],然後選取 [處理]。
- 按一下 [確定] 以重新處理「轉售商銷售額 Cube」。
步驟 4:檢視通知
等候約一分鐘,讓 Notification Services 產生通知。
在 [Windows 檔案總管] 中,尋找「獲利率」範例的 [通知] 資料夾。您應該找到名為 FileNotifications.txt 的檔案。此檔案包含通知。
尋找卸除電子郵件訊息的資料夾。它通常是 C:\Inetpub\mailroot 中的資料夾之一。通知應位於 [收取] 資料夾或 [佇列] 資料夾,視 SMTP 伺服器狀態而定。如果 SMTP 服務正在執行,訊息可能會移至 [Badmail] 資料夾。
移除範例
使用下列程序移除「獲利率」範例。
若要移除 ProfitMargin 範例
在 [物件總管] 窗格中,開啟 [Notification Services] 資料夾。
以滑鼠右鍵按一下 [ProfitMarginInstance],然後選取 [停止]。
以滑鼠右鍵按一下 [ProfitMarginInstance],指向 [工作],然後選取 [取消註冊]。
以滑鼠右鍵按一下 [ProfitMarginInstance],指向 [工作],然後選取 [刪除]。
請參閱
其他資源
SQL Server Notification Services 範例
保全 Notification Services
說明及資訊
變更歷程記錄
| 版本 | 歷程記錄 |
|---|---|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|