共用方式為


Analysis Services 個人化延伸模組

SQL Server Analysis Services 個人化延伸模組是實作外掛程式架構的概念基礎。 在外掛程式架構中,您可以動態開發新的 Cube 物件和功能,並輕鬆地與其他開發人員共用。 因此,Analysis Services 個人化延伸模組提供可達成下列作業的功能:

  • 動態設計和部署 在您設計和部署 Analysis Services 個人化延伸模塊之後,使用者就可以在下一個使用者會話開始時存取物件和功能。

  • 介面獨立 不論您用來建立 Analysis Services 個人化延伸模組的介面為何,使用者都可以使用任何介面來存取物件和功能。

  • 會話內容 Analysis Services 個人化延伸模組不是現有基礎結構中的永久物件,而且不需要重新處理 Cube。 用戶連線到資料庫時,會公開並建立使用者,並保留該用戶會話的長度。

  • 快速分佈 與其他軟體開發人員共用 Analysis Services 個人化延伸模組,而不需進一個詳細規格,以瞭解如何尋找此擴充功能。

Analysis Services 個人化延伸模組有許多用途。 例如,貴公司的銷售涉及不同的貨幣。 您可以建立導出成員,以存取 Cube 的人員當地貨幣傳回合並銷售。 您會將此成員建立為個人化延伸模組。 然後,您會將此匯出成員共用給一組使用者。 共享之後,這些使用者只要連線到伺服器,就會立即存取導出成員。 即使它們未使用與用來建立匯出成員的介面相同,他們還是具有存取權。

Analysis Services 個人化延伸模組是現有 Managed 元件架構的簡單且簡潔的修改,而且會在整個 Analysis Services Microsoft.AnalysisServices.AdomdServer 物件模型、多維度表達式 (MDX) 語法和架構數據列集中公開。

邏輯架構

Analysis Services 個人化延伸模組的架構是以 Managed 元件架構和下列四個基本元素為基礎:

[PlugInAttribute] 自定義屬性
啟動服務時,Analysis Services 會載入必要的元件,並判斷哪些類別具有 Microsoft.AnalysisServices.AdomdServer.PlugInAttribute 自定義屬性。

備註

.NET Framework 會將自定義屬性定義為描述程式碼並影響運行時間行為的一種方式。 如需詳細資訊,請參閱 MSDN 上的 .NET Framework 開發人員指南中的主題「屬性概觀」。

針對 具有 Microsoft.AnalysisServices.AdomdServer.PlugInAttribute 自定義屬性的所有類別,Analysis Services 會叫用其預設建構函式。 在啟動時叫用所有建構函式會提供一個通用位置,以便從中建置新的物件,且與任何用戶活動無關。

除了建置撰寫和管理個人化延伸模組資訊的小型快取之外,類別建構函式通常會訂閱 Microsoft.AnalysisServices.AdomdServer.Server.SessionOpenedMicrosoft.AnalysisServices.AdomdServer.Server.SessionClosing 事件。 若無法訂閱這些事件,可能會導致類別被 Common Language Runtime (CLR) 垃圾收集行程不當標示為清除。

會話內容
針對以個人化延伸模組為基礎的物件,Analysis Services 會在用戶端會話期間建立執行環境,並動態建置此環境中大部分的物件。 如同任何其他 CLR 元件,此執行環境也可以存取其他函式和預存程式。 當使用者會話結束時,Analysis Services 會移除動態建立的物件,並關閉執行環境。

事件
物件建立是由工作階段事件 On-Cube-OpenedCubeOpenedOn-Cube-ClosingCubeClosing觸發。

用戶端與伺服器之間的通訊會透過特定事件進行。 這些事件可讓用戶端知道導致建立客戶端對象的情況。 客戶端的環境是使用兩組事件動態建立的:會話事件和 Cube 事件。

會話事件與伺服器對象相關聯。 當用戶端登入伺服器時,Analysis Services 會建立會話,並觸發 Microsoft.AnalysisServices.AdomdServer.Server.SessionOpened 事件。 當客戶端結束伺服器上的會話時, Analysis Services 會觸發 Microsoft.AnalysisServices.AdomdServer.Server.SessionClosing 事件。

Cube 事件與連接對象相關聯。 連接到 Cube 會觸發 Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeOpened 事件。 關閉 Cube 的連接,方法是關閉 Cube 或變更為不同的 Cube,就會觸發 Microsoft.AnalysisServices.AdomdServer.AdomdConnection.CubeClosing 事件。

可追蹤性和錯誤處理
所有活動都可以使用 SQL Server Profiler 進行追蹤。 未處理的錯誤會回報給 Windows 事件記錄檔。

所有物件撰寫和管理都與這個架構無關,而且是對象開發人員的唯一責任。

基礎結構基礎

Analysis Services 個人化延伸模組是以現有的元件為基礎。 以下是提供個人化延伸模組功能的增強功能和改進摘要。

組件

自定義屬性 Microsoft.AnalysisServices.AdomdServer.PlugInAttribute 可以新增至自定義元件,以識別 Analysis Services 個人化延伸模塊類別。

AdomdServer 物件模型的變更

Microsoft.AnalysisServices.AdomdServer 物件模型中的下列對象已增強或新增至模型。

New AdomdConnection 類別

Microsoft.AnalysisServices.AdomdServer.AdomdConnection 類別是新的,並透過屬性和事件公開數個個人化延伸模組。

性能

活動

Context 類別中的新屬性

Microsoft.AnalysisServices.AdomdServer.Context 類別有兩個新屬性:

新增伺服器類別

Microsoft.AnalysisServices.AdomdServer.Server 類別是新的,並透過類別屬性和事件公開數個個人化延伸模組。

性能

活動

AdomdCommand 類別

Microsoft.AnalysisServices.AdomdServer.AdomdCommand 類別現在支援下列 MDX 命令:

MDX 擴充功能和增強功能

CREATE MEMBER 命令會使用 caption 屬性、 display_folder 屬性和 associated_measure_group 屬性來增強。

新增UPDATE MEMBER 命令,以避免在需要更新時重新建立成員,進而在解決計算時失去優先順序。 更新無法變更匯出成員的範圍、將匯出成員移至不同的父系,或定義不同的 solveorder

CREATE SET 命令會使用 caption 屬性、 display_folder 屬性和 new STATIC | DYNAMIC 關鍵詞來增強。 靜態 表示只有在建立時才會評估集合。 動態 表示每次在查詢中使用集合時都會評估集合。 如果省略關鍵字,則預設值為 STATIC

CREATE KPI 和 DROP KPI 命令會新增至 MDX 語法。 KPI 可以從任何 MDX 腳本動態建立。

架構數據列集延伸模組

新增MDSCHEMA_MEMBERS 範圍 數據行。 範圍值如下所示:MDMEMBER_SCOPE_GLOBAL=1,MDMEMBER_SCOPE_SESSION=2。

新增MDSCHEMA_SETS set_evaluation_context 數據行。 設定評估內容值如下所示:MDSET_RESOLUTION_STATIC = 1,MDSET_RESOLUTION_DYNAMIC = 2。

新增MDSCHEMA_KPIS範圍數據行。 範圍值如下所示:MDKPI_SCOPE_GLOBAL=1,MDKPI_SCOPE_SESSION=2。