データ アクセスの処理
データ ソース関数
データ コネクタは、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 メタデータ レコードを関数に含めることで、特定のデータ ソースに関連付けることができます。 データ ソース レコードでは、データ ソースでサポートされる認証の種類と、基本的なブランド化情報 (表示名/ラベルなど) を定義します。
レコードの名前は、一意識別子になります。
データ ソースに関連付けられている関数には、同じ必須関数パラメーター (名前、型、および順序を含む) が必要です。 特定のデータ ソースの種類の関数には、その種類に関連付けられた資格情報のみを使用できます。 資格情報は、関数の必須パラメーターの組み合わせに基づく参照を実行することで、実行時に識別されます。 資格情報を識別する方法について詳しくは、「データ ソース パス」を参照してください。
例:
HelloWorld = [
Authentication = [
Implicit = []
],
Label = Extension.LoadString("DataSourceLabel")
];
プロパティ
次の表は、データ ソース定義レコードのフィールドの一覧です。
| フィールド | Type | 詳細 |
|---|---|---|
| 認証 | レコード (record) | データ ソースでサポートされる認証の種類を 1 つ以上指定します。 少なくとも 1 つの種類を指定する必要があります。 各種類は、Power Query の資格情報プロンプトでオプションとして表示されます。 詳細については、「認証の種類」を参照してください。 |
| Label | text | (省略可能) 資格情報ダイアログでの、この拡張機能の表示名。 |
| SupportsEncryption | logical | (省略可能) true の場合、UI には、暗号化された接続を使用してデータ ソースに接続するためのオプションが表示されます。 これは通常、暗号化なしのフォールバック メカニズムを使ったデータ ソース (通常は ODBC または ADO.NET ベースのソース) に使用されます。 |
UI への発行
(Data Source)[#data-source-kind] 定義レコードと同様、Publish レコードは、この拡張機能を [データの取得] ダイアログで公開するために必要な情報を 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 の [データの取得] ダイアログでデータ ソースのアイコンの横に表示されるテキスト項目の一覧。 |
| カテゴリ | text | 拡張機能を [データの取得] ダイアログのどこに表示するかを指定します。 現在のところ、特別な方法で処理されるカテゴリ値は Azure と Database だけです。 その他の値の場合、表示位置は [その他] カテゴリの下になります。 |
| ベータ | logical | (省略可能) true に設定した場合、UI には、コネクタ名の横にプレビュー/ベータの識別子が表示され、コネクタの実装に重大な変更が適用されることを示す警告ダイアログが表示されます。 |
| LearnMoreUrl | text | (省略可能) このデータ ソースまたはコネクタについての詳細情報がある Web サイトへの URL。 |
| SupportsDirectQuery | logical | (省略可能) 拡張機能に対する直接クエリを有効にします。 現在、この機能は ODBC 拡張機能についてのみサポートされています。 |
| SourceImage | レコード (record) | (省略可能) バイナリ画像の一覧を含んだレコード (Extension.Contents メソッドを使用して拡張機能ファイルからソーシングされます)。 レコードには 2 つのフィールド (Icon16、Icon32) が含まれ、それぞれに独自の一覧が格納されます。 各アイコンは、異なるサイズにする必要があります。 |
| SourceTypeImage | レコード (record) | (省略可能) SourceImage と似ていますが、組み込みのコネクタの多くでは、ソース固有のアイコンを使ったシート アイコンが右下隅に表示されるという点が異なります。 SourceTypeImage に対して異なるアイコン セットを使用するかどうかは任意です。多くの拡張機能では、両方のフィールドに対して同じアイコン セットが再利用されます。 |