Udostępnij przez


Obsługa bramy

Testuj połączenie

Obsługa łącznika niestandardowego jest dostępna zarówno w trybach osobistych, jak i standardowych lokalnej bramy danych. Oba tryby bramy obsługują importowanie. Zapytanie bezpośrednie jest obsługiwane tylko w trybie standardowym. Uwierzytelnianie OAuth dla łączników niestandardowych za pośrednictwem bram jest obecnie obsługiwane tylko dla administratorów bramy, ale nie dla innych użytkowników źródła danych.

Metoda implementowania funkcji TestConnection może ulec zmianie, gdy funkcja łącznika danych niestandardowych usługi Power BI jest dostępna w wersji zapoznawczej.

Aby obsługiwać zaplanowane odświeżanie za pośrednictwem lokalnej bramy danych, łącznik musi zaimplementować obsługę TestConnection. Funkcja jest wywoływana, gdy użytkownik konfiguruje poświadczenia dla źródła i jest używana, aby upewnić się, że są one prawidłowe. Procedura obsługi TestConnection jest ustawiana w rekordzie Rodzaj źródła danych i ma następujący podpis:

(dataSourcePath) as list => ...

Gdzie dataSourcePath jest wartością Ścieżka źródła danych dla funkcji, a wartość zwracana jest listą składającą się z:

  • Nazwa funkcji do wywołania (ta funkcja musi być oznaczona jako #sharedi jest zwykle podstawową funkcją źródła danych).
  • Jeden lub więcej argumentów do przekazania do funkcji.

Jeśli wywołanie funkcji spowoduje wystąpienie błędu, połączenie TestConnection jest uznawane za zakończone niepowodzeniem, a poświadczenie nie zostanie utrwalone.

Uwaga / Notatka

Jak wspomniano powyżej, nazwa funkcji podana przez TestConnection musi być członkiem shared.

Przykład: łącznik bez wymaganych argumentów

Poniższy fragment kodu implementuje element TestConnection dla źródła danych bez wymaganych parametrów (takich jak ten znaleziony w samouczku TripPin). Łączniki bez wymaganych parametrów (nazywanych "Singletons") nie wymagają żadnych danych wejściowych dostarczonych przez użytkownika w celu przetestowania połączenia (innego niż poświadczenia). W takim przypadku dataSourcePath wartość będzie równa nazwie typu źródło danych i może zostać zignorowana. Funkcja TripPin.Contents jest wywoływana bez dodatkowych parametrów.

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

Przykład: łącznik z parametrem adresu URL

Jeśli funkcja źródła danych ma jeden wymagany parametr typu Uri.Type, będzie on dataSourcePath równy adresowi URL podanemu przez użytkownika. Poniższy fragment kodu przedstawia implementację TestConnection z przykładu github.

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

Przykład: łącznik z wymaganymi parametrami

Jeśli funkcja źródła danych ma wiele parametrów lub jeden parametr inny niż URL, dataSourcePath wartość będzie ciągiem JSON zawierającym parametry. Poniższy fragment kodu pochodzi z przykładu 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"
];