Gestione del supporto dei gateway

Connessione di test

Le modalità Personal e Standard del gateway dati locale supportano connettori personalizzati.

Entrambe le modalità gateway supportano l'importazione. Direct Query è supportato solo in modalità Standard. OAuth per connettori personalizzati tramite gateway supporta attualmente solo gli amministratori del gateway, non altri utenti dell'origine dati.

Per supportare l'aggiornamento pianificato tramite il gateway dati locale, il connettore deve implementare un gestore TestConnection. La funzione viene chiamata quando l'utente configura le credenziali per l'origine e viene utilizzata per verificarne la validità. Il tipo di origine dati definisce il gestore TestConnection nel record. Ha la firma seguente:

(dataSourcePath) as list => ...

Dove dataSourcePath è il valore Percorso origine dati per la funzione e il valore restituito è un elenco composto da:

  • Nome della funzione da chiamare (questa funzione deve essere contrassegnata come #sharede in genere è la funzione di origine dati primaria).
  • Uno o più argomenti da passare alla funzione.

Se la chiamata della funzione genera un errore, TestConnection ha esito negativo e le credenziali non vengono mantenute.

Annotazioni

Come indicato in precedenza, il nome della funzione fornito da TestConnection deve corrispondere a un membro shared.

Esempio: Connettore senza argomenti obbligatori

Il frammento di codice seguente implementa TestConnection per un'origine dati senza parametri obbligatori, come quella presente nel tutorial TripPin. I connettori senza parametri obbligatori (detti Singleton) non necessitano di alcun input fornito dall'utente per testare una connessione (ad eccezione delle credenziali). In questo caso, il dataSourcePath valore è uguale al nome del tipo di origine dati ed è possibile ignorarlo.

La TripPin.Contents funzione viene richiamata senza altri parametri.

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

Esempio: Connettore con un parametro URL

Se la funzione dell'origine dati ha un singolo parametro obbligatorio del tipo Uri.Type, è dataSourcePath uguale all'URL fornito dall'utente. Il frammento di codice seguente illustra l'implementazione di TestConnection dell'esempio di GitHub.

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

Esempio: Connettore con parametri obbligatori

Se la funzione origine dati ha più parametri o un singolo parametro non URL, il dataSourcePath valore è una stringa JSON contenente i parametri. Il frammento di codice seguente proviene dall'esempio 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"
];