データ アクセスの処理

データ ソース関数

データ コネクタは、M ライブラリ内のデータ ソース関数の動作をラップし、カスタマイズします。 たとえば、REST API の拡張機能では、HTTP 要求を行うために、Web.Contents 関数が使用されます。 現時点では、拡張機能をサポートできるデータソース関数の数は限られています。

例:

[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場合は必須とは見なされません)。

特定のデータ ソースの種類の関数には、その種類に関連付けられた資格情報のみを使用できます。 資格情報は、関数の必須パラメーターの組み合わせに基づく参照を実行することで、実行時に識別されます。 資格情報を識別する方法について詳しくは、「データ ソース パス」を参照してください。

例:

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

プロパティ

次の表は、データ ソース定義レコードのフィールドの一覧です。

フィールド Type 詳細
認証 レコード (record) データ ソースでサポートされる認証の種類を 1 つ以上指定します。 少なくとも 1 つの種類を指定する必要があります。 各種類は、Power Query の資格情報プロンプトでオプションとして表示されます。 詳細については、「認証の種類」を参照してください。
Label 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") }
];

プロパティ

次の表は、Publish レコードのフィールドの一覧です。

フィールド Type 詳細
ButtonText list テキスト項目の一覧。 最初の項目は、Power BI の [データの取得] ダイアログでデータ ソースのアイコンの横に表示される名前を定義します。 2 番目の項目 (省略可能) は、前の名前にマウスを置いたときに表示されるツールチップを定義します。
カテゴリ text 拡張機能を [データの取得] ダイアログのどこに表示するかを指定します。 現在のところ、特別な方法で処理されるカテゴリ値は AzureDatabase だけです。 その他の値の場合、表示位置は [その他] カテゴリの下になります。
Beta 論理 (省略可能) true に設定した場合、UI には、コネクタ名の横にプレビュー/ベータの識別子が表示され、コネクタの実装に重大な変更が適用されることを示す警告ダイアログが表示されます。
LearnMoreUrl text (省略可能) このデータ ソースまたはコネクタについての詳細情報がある Web サイトへの URL。
SupportsDirectQuery 論理 (省略可能) 拡張機能に対する直接クエリを有効にします。
SourceImage レコード (record) (省略可能) バイナリ画像の一覧を含んだレコード (Extension.Contents メソッドを使用して拡張機能ファイルからソーシングされます)。 レコードには 2 つのフィールド (Icon16、Icon32) が含まれ、それぞれに独自の一覧が格納されます。 各アイコンは、異なるサイズにする必要があります。
SourceTypeImage レコード (record) (省略可能) SourceImage と似ていますが、組み込みのコネクタの多くでは、ソース固有のアイコンを使ったシート アイコンが右下隅に表示されるという点が異なります。 SourceTypeImage に対して異なるアイコン セットを使用するかどうかは任意です。多くの拡張機能では、両方のフィールドに対して同じアイコン セットが再利用されます。