ゲートウェイサポートの処理

テスト接続

オンプレミス データ ゲートウェイの個人用モードと標準モードの両方で、カスタム コネクタがサポートされます。

どちらのゲートウェイ モードでも インポートがサポートされます。 ダイレクト クエリ は、標準モードでのみサポートされます。 現在、ゲートウェイ経由のカスタム コネクタの OAuth では、他のデータ ソース ユーザーではなく、ゲートウェイ管理者のみがサポートされています。

オンプレミス データ ゲートウェイ経由のスケジュールされた更新をサポートするには、コネクタで TestConnection ハンドラーを実装する 必要があります 。 この関数は、ユーザーがソースの資格情報を構成するときに呼び出され、それらが有効であることを確認するために使用されます。 データ ソースの種類は、レコード内の TestConnection ハンドラーを設定します。 これには次の署名があります。

(dataSourcePath) as list => ...

ここで、 dataSourcePath は関数の データ ソース パス の値であり、戻り値は次で構成されるリストです。

  • 呼び出す関数の名前 (この関数は #sharedとしてマークする必要があり、通常はプライマリ データ ソース関数です)。
  • 関数に渡す 1 つ以上の引数。

関数の呼び出しでエラーが発生した場合、TestConnection は失敗し、資格情報は保持されません。

前述のように、TestConnection によって提供される関数名は、 shared メンバーである必要があります。

例: 必須の引数のないコネクタ

次のコード スニペットは、必要なパラメーターを持たないデータ ソースの TestConnection を実装します ( TripPin チュートリアルで見つかったものなど)。 必要なパラメーターを持たないコネクタ ( Singletons と呼ばれます) では、(資格情報以外の) 接続をテストするためにユーザー指定の入力は必要ありません。 この場合、 dataSourcePath 値はデータ ソースの種類の名前と等しく、無視してかまいません。

TripPin.Contents関数は、他のパラメーターなしで呼び出されます。

TripPin = [
    TestConnection = (dataSourcePath) => { "TripPin.Contents" },
    Authentication = [
        Anonymous = []
    ],
    Label = "TripPin"
];

例: URL パラメーターを持つコネクタ

データ ソース関数に、 Uri.Type型の 1 つの必須パラメーターがある場合、その dataSourcePath はユーザーが指定した URL と等しくなります。 次のスニペットは、GitHub サンプルからの TestConnection の実装を示しています。

GithubSample = [
    TestConnection = (dataSourcePath) => {"GithubSample.Contents", dataSourcePath},
    Authentication = [
        OAuth = [
            StartLogin = StartLogin,
            FinishLogin = FinishLogin,
            Label = Extension.LoadString("AuthenticationLabel")
        ]
    ]
];

例: 必須パラメーターを持つコネクタ

データ ソース関数に複数のパラメーターまたは単一の非 URL パラメーターがある場合、 dataSourcePath 値はパラメーターを含む JSON 文字列です。 次のスニペットは、 DirectQueryForSQL サンプルに由来します。

DirectSQL = [
    TestConnection = (dataSourcePath) =>
        let
            json = Json.Document(dataSourcePath),
            server = json[server],
            database = json[database]
        in
            { "DirectSQL.Database", server, database },
    Authentication = [
        Windows = [],
        UsernamePassword = []
    ],
    Label = "Direct Query for SQL"
];