Tietolähdepolun käsittely
M-moduuli tunnistaa tietolähteen käyttämällä sen lajia ja polkua. Kun tietolähde kohtaa kyselyn arvioinnin aikana, M-moduuli yrittää löytää vastaavat tunnistetiedot. Jos tunnistetietoja ei löydy, moduuli palauttaa erityisen virheen, joka aiheuttaa tunnistetietokehotteen Power Queryssa.
Kind-arvo on peräisin tietolähteen lajimääritelmästä.
Path-arvo johdetaan tietolähdefunktion pakollisistaparametreista. Valinnaisia parametreja ei ota huomioon tietolähteen polun tunnisteessa. Tämän seurauksena kaikilla tietolähdelajiin liittyvillä tietolähdefunktioilla on oltava samat parametrit. Funktioilla, joiden tyyppi Uri.Type
on yksi parametri, on erityinen käsittely. Lisätietoja on funktioissa, joissa on Uri-parametri .
Näet esimerkin tunnistetietojen tallentamisesta Tietolähteen asetukset -valintaikkunassa Power BI Desktopissa. Tässä valintaikkunassa Kind-arvoa edustaa kuvake, ja Polun arvo näkyy tekstinä.
Muistiinpano
Jos muutat tietolähdefunktion pakollisia parametreja kehityksen aikana, aiemmin tallennetut tunnistetiedot eivät enää toimi (koska polkuarvot eivät enää täsmää). Poista kaikki tallennetut tunnistetiedot aina, kun muutat tietolähteen funktion parametreja. Jos yhteensopimattomia tunnistetietoja löytyy, saatat saada virheen suorituksen aikana.
Tietolähteen polun muoto
Tietolähteen Path-arvo johdetaan tietolähdefunktion pakollisista parametreista. Pakolliset parametrit voidaan jättää pois polusta lisäämällä DataSource.Path = false
funktion metatietoihin. Lisätietoja on tietolähteen polun pakollisten parametrien poissulkemisen kohdassa.
Oletusarvon mukaan näet todellisen merkkijonoarvon Power BI Desktopin Tietolähdeasetukset-valintaikkunassa ja tunnistetietokehotteessa. Jos Tietolähteen laji -määrityksessä Label
on ollut arvo, näet sen sijaan otsikkoarvon.
Esimerkiksi HelloWorldWithDocs-mallin tietolähdefunktiolla on seuraava allekirjoitus:
HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...
-funktiolla on yksi pakollinen parametri (message
), jonka tyyppi text
on , ja sen avulla lasketaan tietolähteen polku. Valinnainen parametri (count
) ohitetaan. Polku näytetään seuraavasti:
Tunnistetietokehote
Tietolähdeasetusten käyttöliittymä
Kun Otsikko-arvo on määritetty, tietolähteen polun arvo ei näy:
Muistiinpano
Suosittelemme tällä hetkellä, että et lisää tunnistetta tietolähteellesi, jos funktiossasi on tarvittavat parametrit, koska käyttäjät eivät pysty erottamaan syöttämiään eri tunnistetietoja. Toivomme voivamme parantaa tätä tulevaisuudessa (eli antaa tietoyhdistimien näyttää omat mukautetut tietolähdepolkunsa).
Vaadittujen parametrien pois jättäminen tietolähteen polulta
Jos haluat, että funktion parametri vaaditaan, mutta sitä ei sisällytetä tietolähteen polkuun, voit lisätä DataSource.Path = false
funktiodokumentaation metatietoihin. Tämä ominaisuus voidaan lisätä yhteen tai useampaan funktion parametriin. Tämä kenttä poistaa arvon tietolähteen polusta (eli sitä ei enää välitetä funktioosi TestConnection
), joten sitä tulee käyttää vain parametreihin, joita ei tarvita tietolähteen tunnistamiseen tai käyttäjän tunnistetietojen erottamiseen.
Esimerkiksi HelloWorldWithDocs-mallin liitin edellyttäisi eri tunnistetietoja eri message
arvoille.
Parametrin message
lisääminen DataSource.Path = false
poistaa sen tietolähteen polun laskutoimituksesta ja tekee liittimestä käytännössä "singletonin". Kaikkia -kutsuja HelloWorldWithDocs.Contents
käsitellään samaan tietolähteeseen, ja käyttäjä antaa tunnistetiedot vain kerran.
HelloWorldType = type function (
message as (type text meta [
DataSource.Path = false,
Documentation.FieldCaption = "Message",
Documentation.FieldDescription = "Text to display",
Documentation.SampleValues = {"Hello world", "Hola mundo"}
]),
optional count as (type number meta [
Documentation.FieldCaption = "Count",
Documentation.FieldDescription = "Number of times to repeat the message",
Documentation.AllowedValues = { 1, 2, 3 }
]))
as table meta [
Documentation.Name = "Hello - Name",
Documentation.LongDescription = "Hello - Long Description",
Documentation.Examples = {[
Description = "Returns a table with 'Hello world' repeated 2 times",
Code = "HelloWorldWithDocs.Contents(""Hello world"", 2)",
Result = "#table({""Column1""}, {{""Hello world""}, {""Hello world""}})"
],[
Description = "Another example, new message, new count!",
Code = "HelloWorldWithDocs.Contents(""Goodbye"", 1)",
Result = "#table({""Column1""}, {{""Goodbye""}})"
]}
];
Funktiot, joilla on Uri-parametri
Koska Uri-pohjaisen tunnisteen pohjautuvat tietolähteet ovat niin yleisiä, Power Query -käyttöliittymässä on erityinen käsittely, kun käsitellään Uri-pohjaisia tietolähdepolkuja. Kun Uri-pohjainen tietolähde on havaittu, tunnistetietovalintaikkunassa on avattava valikko, jossa käyttäjä voi valita peruspolun koko polun (ja kaikkien niiden välisten polkujen) sijasta.
Kuten Uri.Type
on määritetty tyyppi eikä primitiivityyppi M-kielessä, sinun on käytettävä Value.ReplaceType-funktiota ilmaisemaan, että tekstiparametria tulee käsitellä Uri-arvona.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);