SQL Server 2000 Analysis Services 引入鑽取與動作兩大開發者功能,讓 Web OLAP 應用能直達明細資料與啟動業務流程,過去需自行實作中繼資料對映層,今內建支援大幅降低開發複雜度。
' 1. 擷取 MDX WHERE 子句
intPos = InStr(Session("MDXQuery"), "WHERE")
If intPos > 0 Then strWhere = Mid(Session("MDXQuery"), intPos)
' 2. 組裝 DRILLTHROUGH MDX
strMDX = "DRILLTHROUGH MAXROWS 5000 " & _
"SELECT {[Measures].[Days]} ON COLUMNS, " & _
"{[Location].[All Location].[N].[Cincinnati]} ON ROWS " & _
"FROM Enrollment " & strWhere
' 3. 執行並處理多重 Recordset (多重分區)
Set rs = conn.Execute(strMDX)
Do Until rs Is Nothing
Call RenderHtmlTable(rs) ' 逐分區輸出 HTML 表格
Set rs = rs.NextRecordset
Loop
| 類型 | 觸發層級 | 典型用途 |
|---|---|---|
| URL | 多維資料集/維度/層級/成員/單元 | 開啟課程大綱、客戶明細頁、報表連結 |
| 報表 | 同上 | 啟動 Reporting Services 報表並傳參數 |
| 鑽取 | 同上 | 導向另一多維資料集的特定切片 |
| 命令列 | 同上 | 啟動外部應用程式 (如 Excel、自訂工具) |
Course 維度 → CourseNum 層級"https://www.quilogy.com/courses/" + [Course].CurrentMember.Name + ".htm"Syllabus' 伺服器端:查詢 MDSCHEMA_ACTIONS Rowset
Set rsActions = conn.OpenSchema(adSchemaActions, _
Array("", "Enrollment", "", "URL", "[Course].[CourseNum].[2072]", "MEMBER"))
' 客戶端:動態顯示動作選單
' 1. 產生可見圖示 (DHTML)
' 2. onClick 切換隱藏表格顯示動作清單
' 3. 動作列 onClick → InvokeURLAction → window.open(url)
Web 頁面顯示 MDX 查詢結果,課程編號旁出現動作圖示,點擊彈出選單,選擇「大綱」即在新視窗開啟課程頁面;點擊數值單元觸發鑽取,彈出明細資料表格。
Analysis Services 將鑽取與動作內建化,開發者無需維護複雜的中繼資料對映層,即可為 Web OLAP 應用賦予「直達明細」與「啟動業務流程」兩大關鍵能力,大幅豐富使用者互動體驗。