Share via


Handhabung des Gateway-Supports

Testen der Verbindung

Die Unterstützung für benutzerdefinierte Connectors ist sowohl im Modus "Persönlich" als auch im Standardmodus des lokalen Datengateways verfügbar. Beide Gatewaymodi unterstützen den Import. Direct Query wird nur im Standardmodus unterstützt. OAuth für benutzerdefinierte Connectors über Gateways wird derzeit nur für Gatewayadministratoren, aber nicht für andere Datenquellenbenutzer unterstützt.

Die Methode für die Implementierung der TestConnection-Funktionalität ändert sich wahrscheinlich, während sich die Benutzerdefinierte Power BI-Datenkonnektorfunktion in der Vorschau befindet.

Um die geplante Aktualisierung über das lokale Datengateway zu unterstützen, muss Ihr Connector einen TestConnection-Handler implementieren. Die Funktion wird aufgerufen, wenn der Benutzer Anmeldeinformationen für Ihre Quelle konfiguriert und verwendet, um sicherzustellen, dass sie gültig sind. Der TestConnection-Handler wird im Datensatz "Datenquellentyp " festgelegt und weist die folgende Signatur auf:

(dataSourcePath) as list => ...

Dabei dataSourcePath handelt es sich um den Datenquellenpfadwert für Ihre Funktion, und der Rückgabewert besteht aus:

  • Der Name der Funktion, die aufgerufen werden soll (diese Funktion muss als #shared gekennzeichnet sein und ist in der Regel Ihre primäre Datenquellenfunktion).
  • Mindestens ein Argument, das an Ihre Funktion übergeben werden soll.

Wenn der Aufruf der Funktion zu einem Fehler führt, wird TestConnection als fehlgeschlagen betrachtet, und die Anmeldeinformationen werden nicht beibehalten.

Hinweis

Wie bereits erwähnt, muss der von TestConnection bereitgestellte Funktionsname ein shared-Mitglied sein.

Beispiel: Connector ohne erforderliche Argumente

Der folgende Codeausschnitt implementiert TestConnection für eine Datenquelle ohne erforderliche Parameter (z. B. die im TripPin-Lernprogramm gefundene). Connectors ohne erforderliche Parameter (als "Singletons" bezeichnet) benötigen keine vom Benutzer bereitgestellten Eingaben, um eine Verbindung (außer Anmeldeinformationen) zu testen. In diesem Fall entspricht der dataSourcePath-Wert dem Namen des Datenquellentyps und kann ignoriert werden. Die TripPin.Contents-Funktion wird ohne zusätzliche Parameter aufgerufen.

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

Beispiel: Connector mit einem URL-Parameter

Wenn die Datenquellenfunktion über einen einzelnen erforderlichen Parameter des Typs Uri.Type verfügt, entspricht sie dataSourcePath der vom Benutzer bereitgestellten URL. Der folgende Codeausschnitt zeigt die TestConnection-Implementierung aus dem Github-Beispiel.

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

Beispiel: Connector mit erforderlichen Parametern

Wenn die Datenquellenfunktion mehrere Parameter oder einen einzelnen Parameter ohne URL aufweist, handelt es sich bei dem dataSourcePath Wert um eine JSON-Zeichenfolge, die die Parameter enthält. Der folgende Codeausschnitt stammt aus dem DirectQueryForSQL-Beispiel .

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"
];