TMDL 檢視 可讓您使用 Power BI Desktop 中的 表格式模型定義語言 (TMDL),使用新式程式代碼編輯器來撰寫、修改及套用語意模型對象的變更,以改善開發效率,並提供語意模型元數據的完整可見度和控制。
TMDL view 提供使用程式碼進行語意模型化的替代體驗,而不是使用像 Model view這樣的圖形使用者介面。
TMDL 視圖提供下列優點:
- 借助功能豐富的程式代碼編輯器, 提升開發效率,其中包含搜尋和取代、快捷鍵、多行編輯等等。
- 藉由在語意模型開發人員之間輕鬆地編寫腳本、共用和重複使用 TMDL 腳本,來增加可重複使用性。 例如,使用集中式 SharePoint 網站輕鬆地共用可重複使用的語意模型物件,例如行事曆數據表或時間智慧計算群組。
- 獲得更多控制和透明度,顯示所有語意模型對象和屬性,並允許變更無法在 Power BI Desktop 使用者介面中看到的專案,例如 IsAvailableInMDX 或 DetailRowsDefinition。
編寫至 TMDL 的腳本
在 Power BI Desktop 中,選取位於視窗左側 TMDL 檢視 圖示,如下圖所示。
當 TMDL 檢視開啟時,程式代碼編輯器一開始是空的。 您可以從 [資料] 窗格選取物件,並將其拖曳至程式程式碼編輯器,以編寫任何語意模型物件,例如數據表、量值或數據行:
使用 TMDL 檢視並從 [數據] 窗格中拖曳物件時,Power BI 會將整個物件的元數據以 TMDL 腳本的形式寫入目前的標籤頁。如果目前的標籤頁不是空的,則會開啟新的標籤頁,作為所選物件 TMDL 腳本的 createOrReplace,如下圖所示。
或者,您可以在資料檢視中以滑鼠右鍵點選物件,然後選取[腳本 TMDL 至新的標籤頁或剪貼簿,如下圖所示:
提示
- 您可以將區段拖曳至程式代碼編輯器,以編寫整個區段的腳本-量值、數據表或數據行,以編寫區段內所有物件的腳本。
- 在將物件編寫腳本導入 TMDL 檢視代碼編輯器之前,按下 CTRL 鍵可以支援多重選取。
程式代碼編輯器
將語意模型物件編寫文本或貼上 TMDL 腳本到程式碼編輯器之後,您就可以使用 TMDL 檢視程式代碼編輯器所提供的完整程式碼體驗功能。 程式代碼體驗功能可讓您探索模型元數據,或進行稍後可套用至語意模型的修改。
語意強調
語意醒目提示內建於程式碼編輯器中,其可藉由根據意義將不同的色彩套用至程式代碼的各個部分,以改善可讀性。 這類色彩編碼可讓您更輕鬆地瞭解 TMDL 程式代碼的結構和功能,如下圖所示。
您也可以展開或折疊 TMDL 腳本的區段,如下圖所示:
自動完成
自動完成功能內建於程式碼編輯器,並在您鍵入時提供智慧型建議。 自動完成可以加速工作流程、減少錯誤的機會,並藉由將游標位置納入考慮,動態建議可能的值或屬性,協助您瞭解程式代碼選項。
您也可以按下 ctrl+Space ,以在任何位置觸發自動完成功能。
工具提示
內容工具提示會在滑鼠懸停時顯示,並提供每個TMDL物件或屬性的相關資訊。
程式動作指令
當游標位於波浪線或選取的文字上時,TMDL 檢視會顯示燈泡圖示,指出可用的程式碼動作,例如產生歷程標記或更正屬性名稱拼錯。
程式代碼格式設定
按 Shift + Alt + F,或按一下功能區中的 [格式] 選項,來格式化 TMDL 程式代碼。
您也可以使用快顯功能表中的 [格式化選取內容] 選項來格式化選取的文字。
錯誤診斷
程式代碼編輯器的內建錯誤診斷可藉由在程式碼編輯器中醒目提示 TMDL 語言錯誤來協助您識別和修正問題,並提供解決這些錯誤的詳細訊息。 此外,[問題] 窗格提供錯誤摘要,可讓您輕鬆地瀏覽至程式代碼編輯器中的錯誤位置,如下圖所示。
將變更套用至語意模型
當您準備好時,您可以選取 [套用] 按鈕,針對語意模型執行 TMDL 腳本,並套用 TMDL 程式代碼變更。
成功時,會顯示通知,並將模型變更套用至語意模型。
發生失敗時,會顯示錯誤通知,以顯示您的模型變更未套用至語意模型。 您可以選取通知中的 [顯示詳細數據] 連結,以檢視錯誤的詳細資訊,然後展開 [輸出] 窗格 並顯示錯誤詳細數據。
注意
TMDL 檢視只會修改語意模型元數據,而不會重新整理數據或影響報表。 如果您的變更需要數據重新整理,例如變更 PowerQuery 表達式或匯出數據行表達式,您必須手動重新整理數據表或模型,變更才會生效。 此外,在 TMDL 檢視中重新命名欄位可能會中斷報表中使用該欄位的視覺效果。
預覽語意模型的變更
TMDL 視圖可讓您預覽腳本變更,即在腳本執行前後顯示語義模型的預覽,呈現為 TMDL 程式碼差異。 從其他來源複製腳本時,預覽腳本變更特別有用,讓您在針對語意模型執行腳本之前先評估其影響。
選取 [預覽] 按鈕會在開啟的索引標籤中執行 TMDL 腳本之前和之後,顯示語意模型的 TMDL 差異。
並排視窗會出現在右窗格中,如下圖所示。
紅色和綠色方塊標示變更,紅色方塊表示已移除或變更的線條,而綠色方塊表示新線條。
注意
比較不會直接與當前顯示的 TMDL 腳本進行,而是在執行腳本之前和之後進行全面的語意模型比較。 因此,某些屬性的排序方式可能會與索引標籤中顯示的屬性不同,並遵循預設 TMDL 屬性/物件順序。
預覽是只讀的,但您可以繼續編輯腳本。 若要在變更后重新整理預覽,請選取 [ 更新預覽 ] 按鈕,如下圖所示。
預覽畫面右上角有一個工具列,可讓您流覽所有程式代碼差異,讓您在 內嵌 或 並存 差異之間切換、檢視或隱藏未變更的區域,以及關閉預覽檢視。
預覽語意模型的變更時,請記住一些考慮:
- TMDL 檢視會將每個預覽執行的檢視組態重設為預設值。
- 預覽只會以有效的 TMDL 變更執行。 無效的 TMDL 腳稿不會執行預覽,而且錯誤會顯示在 [輸出] 窗格中。
TMDL 腳本索引標籤
在 TMDL 檢視中,您可以一次有多個腳本索引標籤,其中任何一個都可以重新命名或移除。
當您儲存 Power BI Desktop 報表時,TMDL 檢視 索引標籤的內容會儲存在報表檔案中,如此您可以在下次開啟 Power BI Desktop 報表檔案時,從上次中斷的地方繼續作業。 儲存至 Power BI 專案(PBIP)時,每個腳本索引標籤都會儲存為 .tmdl 檔案,位於 \TMDLScripts 資料夾中,如下圖所示。
提示
您可以在 Visual Studio Code 中開啟和編輯 TMDL 腳本,並在重新啟動 Power BI Desktop 之後正確重載這些腳本。
問題 和 輸出 窗格會顯示特定於當前選取和顯示的腳本標籤的錯誤和訊息。 切換至不同的 TMDL 腳本索引標籤會重新整理這兩個窗格,其中包含所選和目前顯示索引標籤的特定資訊。
您可以選取 [清除] 按鈕,以清空 輸出 窗格訊息。
訊息僅保留於每次 Power BI Desktop 工作階段,因此重新啟動 Power BI Desktop 會清除所有腳本分頁的輸出訊息。
相容性層級升級提示
Power BI 語 意模型的相容性層級 會決定可存取的功能。 TMDL 檢視可讓您新增任何 Analysis Services 對象或屬性,即使目前相容性層級無法使用也一樣。 套用需要相容性層級升級的變更時,TMDL 檢視會提供提示,指出哪些物件或物件需要升級。
使用 TMDL 檢視重新命名物件
若要在 TMDL 檢視中重新命名對象,必須編寫其父系的腳本。 例如,重新命名數據行需要編寫數據表的腳本,而重新命名數據表需要編寫整個語意模型的腳本。 在下列檔中深入瞭解表格式物件模型階層: 表格式物件模型階層。
透過 TMDL 檢視,可以使用簡單的尋找和取代模式,有效率地執行大量重新命名。 例如,您可以遵循下列步驟,將所有數據表數據行重新命名為小寫。
開啟 TMDL 檢視,撰寫您想要修改的數據表腳本。
按 CTRL+F 開啟 [尋找和取代] 對話框,確定已啟用正規表示式選項。
在「尋找」和「取代」欄位中輸入下列模式,然後選取 [全部取代]。
| 行動 | 模式/取代 |
|---|---|
| 尋找 | (^\s+column\s+)(.+) |
| 替換 | $1\L$2 |
執行 TMDL 文稿,立即將所有資料表數據行重新命名為小寫:
請注意,數據行名稱會與sourceColumn屬性不同。
語意模型數據表與 Power Query 查詢之間的同步處理依賴 sourceColumn,讓名稱保持獨立。 當您開啟 Power Query 編輯器時,它會顯示符合 sourceColumn 的數據行名稱,而不是模型的數據行名稱。 此外,在使用者介面中重新命名欄位不會自動將重新命名步驟新增至查詢,除非 sourceColumn 和欄位名稱相同。
TMDL 檢視和 Power BI 專案
當您將工作儲存為 Power BI 專案 (PBIP)時,您可以存取語意模型定義元數據,TMDL 檔案,提供實用的原始檔控制和共同開發體驗,同時讓您 對 Power BI Desktop 外部語意模型進行變更。 不過,如果您修改 PBIP 內的 TMDL 檔案,則必須重新啟動 Power BI Desktop 以重載這些變更。 相反地,TMDL 檢視會遵循腳本心理模型,讓您能夠使用 TMDL 將變更直接套用至 Power BI Desktop 中編輯的語意模型,而不論檔格式是 PBIX 還是 PBIP。
您可以順暢地整合這兩種體驗。 例如,您可以在 PBIP 中更新 TMDL 定義以進行快速變更,而不啟動 Power BI Desktop,並在 Power BI Desktop 已開啟時利用 TMDL 檢視,以有效率地使用 TMDL 實作語意模型的一系列變更。 這兩種方法都提供豐富且一致的 TMDL 編碼體驗。
提示
若想在 Visual Studio Code 外部編輯 TMDL 檔案時,獲得更佳的 TMDL 製作體驗,請使用 TMDL Visual Studio Code 擴充功能。 此擴充套件提供 DAX 與 Power Query 語意高亮、自動補全、診斷、程式碼動作、程式碼格式、麵包屑導航,以及 TMDL 文件的在地化支援。
TMDL 檢視的常見使用案例
案例: 我需要重複使用或共用語意模型數據表及其完整定義,包括數據行、Power Query 表達式,以及依組態排序,以及其他語意模型中的其他語意模型數據表。
解決方案: 使用數據表開啟語意模型,請使用 TMDL 檢視來編寫腳本。 將腳本複製到其他 Power BI Desktop 視窗、開啟 TMDL 檢視索引標籤,然後套用腳本。
案例: 我已將所有資料表命名為帶有前綴 "dim_" 或 "fact_"。 我想要移除這些前置詞,而不需手動更新超過100個數據表。
解決方案: 開啟 TMDL 檢視、編寫語意模型腳本、搜尋前置詞(支援正則表達式),並以空文字取代它。
案例: 我需要在語意模型中建立透視圖,才能使用 個人化視覺效果功能。 不過,我無法使用Power BI Desktop的圖形化介面來建立或編輯它。
解決方案: 開啟 TMDL 檢視,建立新的空白標籤頁(或從現有透視圖中使用腳本),然後透過 TMDL 建立或編輯透視圖。 此方法也適用於缺少圖形化介面的其他語意模型元數據,例如翻譯、詳細列表達式和其他項目。
createOrReplace
perspective SalesView
perspectiveTable Sales
perspectiveMeasure 'Sales Amount'
perspectiveMeasure 'Sales Qty'
perspectiveColumn Quantity
perspectiveColumn 'Amount'
案例: 我需要修改數據表的Power Query 表達式,而不觸發重新整理。
解決方案: 編寫數據表腳本、修改Power Query 運算式,並套用變更。 TMDL 檢視不需要重新整理您的資料。
案例: 我需要將數據表的儲存模式從 DirectQuery 切換為匯入,反之亦然
解決方案: 撰寫資料表的腳本、更新分區模式,並套用變更。
案例: 需要先備份語意模型定義,再進行重大變更,並視需要輕鬆地回復到先前的定義。
解決方案: 編寫您想要備份的語意模型或特定部分的腳本、在其他檢視中進行變更,並視需要返回 TMDL 檢視,以執行儲存的腳本來還原先前的元數據。
考量與限制
- 您可以使用 TMDL 檢視來編輯語意模型中的任何物件或屬性。 不過,不完整或不正確的修改可能會導致非預期的行為。 如需這些作業的更多指引,請參閱 模型撰寫一文。
- 命令選擇區 會顯示一些目前不支援的命令。
- 從 設定
初始 Git 整合不會包含儲存在已發佈語意模型中的 TMDL 檢視腳本。 若要深入瞭解,請參閱 Fabric Git 整合 一文。
相關內容
下列文章將詳細說明 TMDL 及其用法。