Zdieľať cez


Spracovanie cesty k zdroju údajov

Nástroj M identifikuje zdroj údajov pomocou kombinácie jeho druhov a ciest. Keď sa zdroj údajov vyskytne počas vyhodnocovania dotazu, nástroj M sa snaží nájsť zodpovedajúce poverenia. Ak sa nenájdu žiadne poverenia, nástroj vráti špeciálnu chybu, ktorá má za následok výzvu na zadanie prihlasovacích údajov v doplnku Power Query.

Hodnota Druh pochádza z definície Druh zdroja údajov.

Hodnota Path je odvodená od povinných parametrov funkcie zdroja údajov. Voliteľné parametre nie sú zohľadnené v identifikátore cesty zdroja údajov. Výsledkom je, že všetky funkcie zdroja údajov priradené k typu zdroja údajov musia mať rovnaké parametre. K dispozícii je špeciálne spracovanie funkcií, ktoré majú jeden parameter typu Uri.Type. Podrobnosti nájdete v článku Funkcie s parametrom Uri.

Príklad uloženia poverení môžete vidieť v dialógovom okne Nastavenia zdroja údajov v aplikácii Power BI Desktop. V tomto dialógovom okne je položka Druh zastúpená ikonou a hodnota Path sa zobrazí ako text.

Snímka obrazovky s prihlasovacími údajmi k nastaveniam zdroja údajov.

Poznámka

Ak počas vývoja zmeníte požadované parametre funkcie zdroja údajov, predtým uložené poverenia už nebudú fungovať (pretože hodnoty cesty sa už nebudú zhodovať). Všetky uložené poverenia by ste mali odstrániť vždy, keď zmeníte parametre funkcie zdroja údajov. Ak sa nájdu nekompatibilné poverenia, v režime runtime sa môže zobraziť chyba.

Formát cesty k zdroju údajov

Hodnota Path pre zdroj údajov sa odvodzuje od požadovaných parametrov funkcie zdroja údajov. Požadované parametre možno vylúčiť z cesty pridaním DataSource.Path = false do metaúdajov funkcie. Ďalšie informácie nájdete v časti Vylúčenie požadovaných parametrov zo zdroja údajov.

Skutočná hodnota reťazca sa predvolene zobrazuje v dialógovom okne Nastavenia zdroja údajov v aplikácii Power BI Desktop a v výzve na zadanie poverení. Ak definícia Druh zdroja údajov obsahuje Label hodnotu, zobrazí sa hodnota označenia.

Napríklad funkcia zdroja údajov v ukážke HelloWorldWithDocs má nasledujúci podpis:

HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...

Funkcia má jeden povinný parameter (message) typu texta používa sa na výpočet cesty k zdroju údajov. Voliteľný parameter (count) sa ignoruje. Cesta by sa zobrazila takto:

Výzva na zadanie poverení

Snímka obrazovky výzvy na zadanie prihlasovacích údajov s cestou.

Používateľské rozhranie nastavenia zdroja údajov

Snímka obrazovky používateľského rozhrania nastavení zdroja údajov.

Keď je definovaná hodnota Označenie, hodnota cesty zdroja údajov sa nezobrazuje:

Snímka obrazovky nastavení zdroja údajov s definovaným označením.

Poznámka

Ak vaša funkcia vyžaduje parametre, v súčasnosti odporúčame, aby ste pre váš zdroj údajov nezahrnuli Označenie, pretože používatelia nebudú môcť rozlíšiť rôzne prihlasovacie údaje, ktoré zadali. Dúfame, že to v budúcnosti vylepšíme (t. j. umožníme konektorom údajov zobrazovať svoje vlastné cesty k zdroju údajov).

Vylúčenie požadovaných parametrov z cesty k zdroju údajov

Ak chcete, aby sa parameter funkcie vyžadoval, ale nesmie sa zahrnúť ako súčasť cesty k zdroju údajov, môžete pridať DataSource.Path = false do metaúdajov dokumentácie k funkcii. Túto vlastnosť je možné pridať k jednému alebo viacerým parametrom funkcie. Toto pole odstráni hodnotu z cesty k zdroju údajov (čo znamená, že sa už neprenesie do vašej TestConnection funkcie), preto sa má použiť len pre parametre, ktoré nie sú potrebné na identifikáciu zdroja údajov alebo na rozlíšenie prihlasovacích údajov používateľa.

Napríklad konektor v ukážke HelloWorldWithDocs by vyžadoval rôzne poverenia pre rôzne message hodnoty. Pridaním DataSource.Path = false parametra message sa parameter odstráni z výpočtu cesty zdroja údajov, čím sa konektor efektívne vytvorí ako "singleton". Všetky volania služby sa HelloWorldWithDocs.Contents považujú za rovnaký zdroj údajov a používateľ prihlasovacie údaje poskytne iba raz.

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""}})"
        ]}
    ];

Funkcie s parametrom Uri

Keďže zdroje údajov s identifikátorom založeným na identifikátore Uri sú také bežné, pri práci s cestami zdroja údajov založeným na identifikátore Uri sa v používateľskom rozhraní Power Query nachádza špeciálne spracovanie. Keď sa vyskytne zdroj údajov založený na identifikátore Uri, dialógové okno poverení zobrazí rozbaľovací zoznam, ktorý používateľovi umožňuje vybrať základnú cestu namiesto úplnej cesty (a všetkých ciest, ktoré sú medzi nimi).

Snímka obrazovky dialógového okna poverení zobrazujúca cestu nastavenia, pre ktorú sa poverenia vzťahujú.

Podobne ako pripisovaný typ namiesto primitívneho typu v jazyku M, bude potrebné použiť funkciu Value.ReplaceType, ktorá indikuje, že váš textový parameter sa má považovať za identifikátor Uri.Type Uri.

shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);