Gatewayondersteuning verwerken

Verbinding testen

Ondersteuning voor aangepaste connectors is beschikbaar in zowel de modi Persoonlijk als Standaard van de on-premises gegevensgateway. Beide gatewaymodi ondersteunen Importeren. Direct Query wordt alleen ondersteund in de standaardmodus. OAuth voor aangepaste connectors via gateways wordt momenteel alleen ondersteund voor gatewaybeheerders, maar niet voor andere gegevensbrongebruikers.

De methode voor het implementeren van testConnection-functionaliteit zal waarschijnlijk veranderen terwijl de functionaliteit Power BI Custom Data Connector in preview is.

Om geplande vernieuwing via de on-premises gegevensgateway te ondersteunen, moet uw connector een TestConnection-handler implementeren. De functie wordt aangeroepen wanneer de gebruiker referenties voor uw bron configureert en wordt gebruikt om ervoor te zorgen dat deze geldig zijn. De handler TestConnection wordt ingesteld in de record Soort gegevensbron en heeft de volgende handtekening:

(dataSourcePath) as list => ...

Waar dataSourcePath is de waarde van het gegevensbronpad voor uw functie en de retourwaarde is een lijst die bestaat uit:

  • De naam van de functie die moet worden aanroepen (deze functie moet worden gemarkeerd als #shared en is meestal uw primaire gegevensbronfunctie).
  • Een of meer argumenten om door te geven aan uw functie.

Als het aanroepen van de functie resulteert in een fout, wordt TestConnection beschouwd als mislukt en worden de referenties niet persistent gemaakt.

Notitie

Zoals hierboven vermeld, moet de functienaam van TestConnection lid shared zijn.

Voorbeeld: Connector zonder vereiste argumenten

Met het onderstaande codefragment wordt TestConnection geïmplementeerd voor een gegevensbron zonder vereiste parameters (zoals het codefragment dat u in de TripPin-zelfstudie hebt gevonden). Connectors zonder vereiste parameters (aangeduid als 'Singletons') hebben geen door de gebruiker opgegeven invoer nodig om een verbinding te testen (met andere dan referenties). In dit geval is de waarde gelijk aan de naam van het soort gegevensbron dataSourcePath en kan deze worden genegeerd. De TripPin.Contents functie wordt aangeroepen zonder extra parameters.

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

Voorbeeld: Connector met een URL-parameter

Als uw gegevensbronfunctie één vereiste parameter van het type heeft, is deze gelijk aan Uri.Type de URL van de dataSourcePath gebruiker. In het onderstaande fragment ziet u de TestConnection-implementatie van het Github-voorbeeld.

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

Voorbeeld: Connector met vereiste parameters

Als uw gegevensbronfunctie meerdere parameters of één niet-URL-parameter heeft, is de waarde een dataSourcePath JSON-tekenreeks met de parameters. Het onderstaande fragment is afkomstig uit het DirectQueryForSQL-voorbeeld.

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