Jaa


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 pakollisista parametreista. 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.Typeon 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ä.

Näyttökuva tietolähteen asetusten tunnistetiedoista.

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 texton , ja sen avulla lasketaan tietolähteen polku. Valinnainen parametri (count) ohitetaan. Polku näytetään seuraavasti:

Tunnistetietokehote

Näyttökuva tunnistetietokehotteesta, jossa on polku.

Tietolähdeasetusten käyttöliittymä

Näyttökuva tietolähdeasetusten käyttöliittymästä.

Kun Otsikko-arvo on määritetty, tietolähteen polun arvo ei näy:

Näyttökuva tietolähdeasetuksista, joissa on määritetty selite.

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.

Näyttökuva tunnistetietovalintaikkunasta, joka näyttää asetuspolun, johon tunnistetiedot koskevat.

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);