Behandling av gateway-støtte

tilkoblingstest

Både personlige og standardmoduser av den lokale datagatewayen støtter tilpassede koblinger.

Begge gateway-modusene støtter import. Direct Query støttes kun i Standardmodus. OAuth for tilpassede koblinger gjennom gateways støtter for øyeblikket kun gateway-administratorer, ikke andre datakildebrukere.

For å støtte planlagt oppdatering gjennom den lokale datagatewayen, kontakten din implementere en TestConnection-håndterer. Funksjonen kalles når brukeren konfigurerer legitimasjoner for kilden din, og brukes for å sikre at de er gyldige. Data Source Type setter TestConnection-håndtereren i posten. Den har følgende signatur:

(dataSourcePath) as list => ...

Hvor dataSourcePath er verdien for datakildestien for funksjonen din, og returverdien er en liste bestående av:

  • Navnet på funksjonen du skal kalle (denne funksjonen må være merket som #shared, og er vanligvis din primære datakildefunksjon).
  • Ett eller flere argumenter å videreformidle til din funksjon.

Hvis anropet av funksjonen resulterer i en feil, feiler TestConnection, og legitimasjonen opprettholdes ikke.

Note

Som nevnt tidligere må funksjonsnavnet som oppgis av TestConnection være et shared medlem.

Eksempel: Kobling uten nødvendige argumenter

Følgende kodeutdrag implementerer TestConnection for en datakilde uten nødvendige parametere (slik som den som finnes i TripPin-veiledningen). Kontakter uten nødvendige parametere (kalt Singletons) trenger ingen brukerinndata for å teste en tilkobling (annet enn legitimasjon). I dette tilfellet dataSourcePath er verdien lik navnet på Data Source Type, og du kan ignorere den.

Funksjonen TripPin.Contents kalles uten andre parametere.

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

Eksempel: Connector med en URL-parameter

Hvis datakildefunksjonen din har én enkelt nødvendig parameter av typen Uri.Type, er den dataSourcePath lik URL-en som brukeren oppgir. Følgende utdrag viser TestConnection-implementeringen fra GitHub-eksempelet.

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

Eksempel: Kobling med nødvendige parametere

Hvis datakildefunksjonen din har flere parametere, eller en enkelt ikke-URL-parameter, er verdien dataSourcePath en JSON-streng som inneholder parameterne. Følgende utdrag kommer fra eksempelet 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"
];