共用方式為


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會將自訂屬性定義為描述程式碼並影響執行時間行為的方式。 For more information, see the topic, "Attributes Overview," in the .NET Framework Developer's Guide on MSDN.

對於具有 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物件模型中的下列物件已增強或新增至模型。

新的 AdomdConnection 類別

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

屬性

事件

Context 類別中的新屬性

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

新的 Server 類別

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 屬性和新的 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。

加入 On MDSCHEMA_KPIS 範圍資料行。 範圍值如下所示:MDKPI_SCOPE_GLOBAL=1、MDKPI_SCOPE_SESSION=2。