Spracovanie cesty zdroja dát

M engine identifikuje dátový zdroj pomocou kombinácie jeho druhu a cesty. Keď sa počas vyhodnocovania dotazu objaví dátový zdroj, M engine sa snaží nájsť zodpovedajúce prihlasovacie údaje. Ak sa nenájdu žiadne prihlasovacie údaje, engine vráti špeciálnu chybu, ktorá vedie k výzve na prihlasovacie údaje v Power Query.

Hodnota Kind pochádza z definície Data Source Kind .

Hodnota Path je odvodená z požadovaných parametrovvašej dátovej zdrojovej funkcie. Voliteľné parametre nie sú zahrnuté v identifikátore cesty zdroja dát. Výsledkom je, že všetky funkcie zdroja dát spojené s druhom zdroja musia mať rovnaké parametre. Existuje špeciálne spracovanie pre funkcie, ktoré majú jeden parameter typu Uri.Type. Podrobnosti nájdete v sekcii Funkcie s parametrom URI .

Príklad ukladania prihlasovacích údajov môžete vidieť v dialógovom paneli nastavení zdroja dát v Power BI Desktop. V tomto dialógu je Kind reprezentovaný ikonou a hodnota Path sa zobrazuje ako text.

Snímka obrazovky nastavení dátového zdroja prihlasovacích údajov.

Poznámka

Ak počas vývoja zmeníte požadované parametre funkcie zdroja dát, predtým uložené prihlasovacie údaje už nefungujú (pretože hodnoty cesty už nesedia). Všetky uložené prihlasovacie údaje by ste mali vymazať vždy, keď zmeníte parametre funkcie zdroja dát. Ak sa nájdu nekompatibilné prihlasovacie údaje, môžete počas behu dostať chybu.

Formát cesty zdroja dát

Hodnota Path pre zdroj dát je odvodená z požadovaných parametrov funkcie zdroja dát. Požadované parametre je možné z cesty vylúčiť pridaním DataSource.Path = false do metadát funkcie. Pre viac informácií choďte do sekcie Vylúčenie požadovaných parametrov z cesty zdroja dát.

Predvolene vidíte skutočnú hodnotu reťazca v dialógovom okne nastavení zdroja dát v Power BI Desktop a v výzve na prihlasovacie údaje. Ak definícia Data Source Kind obsahuje hodnotu Label , uvidíte namiesto nej hodnotu štítku.

Napríklad funkcia zdroja dát vo vzorke HelloWorldWithDocs má nasledujúci podpis:

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

Funkcia má jeden požadovaný parameter (message) typu text, a používa sa na výpočet cesty zdroja dát. Voliteľný parameter (count) je ignorovaný. Cesta by bola zobrazená nasledovne:

Prompt na získanie kvalifikácie

Snímka obrazovky výzvy na prihlasovacie údaje s cestou.

Nastavenia zdrojov dát UI

Screenshot používateľského rozhrania nastavení zdroja dát.

Keď je definovaná hodnota štítku, hodnota cesty zdroja dát sa nezobrazí:

Snímka obrazovky nastavení zdroja dát s definovaným štítkom.

Poznámka

Momentálne odporúčame, aby ste nepridávali Štítok pre váš dátový zdroj, ak má vaša funkcia požadované parametre, pretože používatelia nebudú schopní rozlíšiť rôzne zadané prihlasovacie údaje. Dúfame, že to v budúcnosti zlepšíme (teda umožníme dátovým konektorom zobrazovať vlastné cesty zdroja dát).

Vylúčenie požadovaných parametrov z cesty zdroja dát

Ak chcete, aby parameter funkcie bol povinný, ale nebol zahrnutý ako súčasť cesty zdroja dát, môžete pridať DataSource.Path = false do metadát dokumentácie funkcie. Túto vlastnosť možno pridať k jednému alebo viacerým parametrom vašej funkcie. Toto pole odstráni hodnotu z cesty zdroja dát (čo znamená, že už nie je odovzdávaná vašej TestConnection funkcii), takže by sa malo používať len pre parametre, ktoré nie sú potrebné na identifikáciu zdroja dát alebo na rozlíšenie používateľských prihlasovacích údajov.

Napríklad konektor vo vzorke HelloWorldWithDocs by vyžadoval rôzne prihlasovacie údaje pre rôzne message hodnoty. Pridaním DataSource.Path = false parametra message sa odstráni z výpočtu cesty zdroja dát, čím sa konektor stáva "singletonom". Všetky volania sa HelloWorldWithDocs.Contents považujú za rovnaký zdroj dát a používateľ zadá prihlasovacie údaje len 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 dátové zdroje s identifikátorom založeným na URI sú také bežné, v rozhraní Power Query je špeciálne spracovanie pri práci s cestami zdrojov založenými na Uri. Keď narazíte na zdroj dát založený na Uri, dialógové okno s prihlasovacími informáciami poskytuje rozbaľovacie menu, ktoré umožňuje používateľovi vybrať základnú cestu namiesto celej cesty (a všetkých cest medzi nimi).

Screenshot dialógového okna s prihlasovacími údajmi, ktorý ukazuje cestu nastavenia, na ktorú sa prihlasovacie údaje vzťahujú.

Keďže Uri.Type je v jazyku M atributovaný typ , nie primitívny , budete musieť použiť funkciu Value.ReplaceType na označenie, že váš textový parameter by mal byť považovaný za Uri.

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