Partager via


Gestion de la prise en charge de passerelle

Tester la connexion

Un prise en charge du connecteur personnalisé est disponible dans les modes Personnel et Standard de la passerelle de données locale. Les deux modes de passerelle prennent en charge l'importation. La requête directe est prise en charge uniquement en mode Standard. OAuth pour les connecteurs personnalisés via des passerelles est actuellement pris en charge uniquement pour les administrateurs de passerelle mais pas pour les autres utilisateurs de source de données.

La méthode d’implémentation de la fonctionnalité TestConnection est susceptible de changer, alors que la fonctionnalité Connecteur de données personnalisé Power BI est en préversion.

Pour prendre en charge l’actualisation planifiée via la passerelle de données locale, votre connecteur doit implémenter un gestionnaire TestConnection. La fonction est appelée quand l’utilisateur configure des informations d’identification pour votre source, et utilisée pour s’assurer qu’elles sont valides. Le gestionnaire TestConnection est défini dans l’enregistrement Type de source de données et a la signature suivante :

(dataSourcePath) as list => ...

dataSourcePath est la valeur de Chemin d’accès de source de données pour votre fonction, et la valeur retournée est une liste composée des éléments suivants :

  • Nom de la fonction à appeler (cette fonction doit être marquée comme #shared, et est généralement votre fonction de source de données principale).
  • Un ou plusieurs arguments à passer à votre fonction.

Si l’appel de la fonction entraîne une erreur, TestConnection est considéré comme ayant échoué, et les informations d’identification ne sont pas conservées.

Remarque

Comme indiqué ci-dessus, le nom de la fonction fourni par TestConnection doit être un membre shared.

Exemple : connecteur sans argument requis

L’extrait de code ci-dessous implémente TestConnection pour une source de données sans paramètres requis (comme dans le Tutoriel TripPin). Les connecteurs sans paramètres requis (appelés « Singletons ») n’ont pas besoin d’entrée fournie par l’utilisateur (autre que les informations d’identification) pour tester une connexion. Dans ce cas, la valeur dataSourcePath est le nom du Genre de source de données, et peut être ignorée. La fonction TripPin.Contents est appelée sans paramètres supplémentaires.

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

Exemple : connecteur avec un paramètre d’URL

Si votre fonction de source de données a un paramètre requis unique du type Uri.Type, sa dataSourcePath est l’URL fournie par l’utilisateur. L’extrait de code ci-dessous montre l’implémentation de TestConnection à partir de l'exemple Github.

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

Exemple : connecteur avec paramètres requis

Si votre fonction de source de données a plusieurs paramètres ou un seul paramètre non URL, la valeur dataSourcePath est une chaîne JSON contenant les paramètres. L’extrait de code ci-dessous provient de l’exemple 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"
];