Share via


處理數據存取

數據源函式

Data 連線 or 包裝並自定義 M 連結庫中數據源函式的行為。 例如,REST API 的延伸模組會使用 Web.Contents 函 式來提出 HTTP 要求。 目前,已啟用一組有限的數據源函式來支持擴充性。

範例:

[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents = (optional message as text) =>
    let
        message = if (message <> null) then message else "Hello world"
    in
        message;

資料來源種類

在延伸模組中標示為 shared 的函式可以透過包含 DataSource.Kind 具有數據源定義記錄名稱之函式上的常值屬性,來與特定數據源產生關聯。 數據源記錄會定義數據源支援的驗證類型,以及基本商標資訊(例如顯示名稱/標籤)。 記錄的名稱會變成其唯一標識碼。

與相同數據源相關聯的每個函式都必須具有相同的必要函式參數,包括名稱、類型和順序。 (針對數據源種類的目的,如果參數已標示 optional ,或其元數據包含 DataSource.Path = false,則不視為必要參數。

特定數據源種類的函式只能使用與該 Kind 相關聯的認證。 認證是在運行時間藉由根據函式必要參數的組合來執行查閱來識別。 如需如何識別認證的詳細資訊,請參閱 數據源路徑

範例:

HelloWorld = [
    Authentication = [
        Implicit = []
    ],
    Label = Extension.LoadString("DataSourceLabel")
];

屬性

下表列出數據源定義記錄的欄位。

欄位 類型 詳細資料
驗證 記錄 指定數據源支援的一或多個驗證類型。 至少需要一種。 每一種類型都會在Power Query認證提示中顯示為選項。 如需詳細資訊,請參閱 驗證種類
標籤 text (選擇性) 認證對話框中此延伸模組的易記顯示名稱。
SupportsEncryption 邏輯 (選擇性) 若為 true,UI 會提供選項,以使用加密連線至數據源。 這通常用於具有非加密後援機制的數據源(通常是 ODBC 或 ADO.NET 型來源)。

發佈至UI

數據源定義記錄類似,[發佈] 記錄會提供Power Query UI 在 [取得資料] 對話框中公開此延伸模組所需的資訊。

範例:

HelloWorld.Publish = [
    Beta = true,
    ButtonText = { Extension.LoadString("FormulaTitle"), Extension.LoadString("FormulaHelp") },
    SourceImage = HelloWorld.Icons,
    SourceTypeImage = HelloWorld.Icons
];

HelloWorld.Icons = [
    Icon16 = { Extension.Contents("HelloWorld16.png"), Extension.Contents("HelloWorld20.png"), Extension.Contents("HelloWorld24.png"), Extension.Contents("HelloWorld32.png") },
    Icon32 = { Extension.Contents("HelloWorld32.png"), Extension.Contents("HelloWorld40.png"), Extension.Contents("HelloWorld48.png"), Extension.Contents("HelloWorld64.png") }
];

屬性

下表列出 [發佈] 記錄的欄位。

欄位 類型 詳細資料
ButtonText 清單 文字項目清單。 第一個項目會定義 Power BI [取得資料 ] 對話框中資料源圖示旁顯示的名稱。 第二個專案 (選擇性) 定義工具提示,當上述名稱是滑鼠停留時,將會顯示的工具提示。
類別 text 延伸模組應該顯示在 [取得數據 ] 對話框中的位置。 目前唯一具有特殊手法的類別值是 AzureDatabase。 所有其他值最終都會在 [其他] 類別之下。
Beta 邏輯 (選擇性) 當設定為 true 時,UI 會顯示連接器名稱旁的預覽/Beta 識別碼,以及連接器實作受限於重大變更的警告對話框。
LearnMoreUrl text (選擇性) 包含此數據源或連接器詳細信息的網站URL。
SupportsDirectQuery 邏輯 (選擇性) 啟用延伸模組的直接查詢。
SourceImage 記錄 (選擇性) 包含二進位影像清單的記錄(使用 Extension.Contents 方法從擴展名檔案來源)。 記錄包含兩個字段(Icon16,Icon32),每個字段都有自己的清單。 每個圖示的大小都應該不同。
SourceTypeImage 記錄 (選擇性) 與 SourceImage 類似,除了許多現成連接器的慣例,就是在右下角顯示具有來源特定圖示的工作表圖示。 SourceTypeImage 有一組不同的圖示是選擇性的,許多延伸模組只會針對這兩個字段重複使用相同的圖示集。