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