Sdílet prostřednictvím


Zpracování cesty ke zdroji dat

Modul M identifikuje zdroj dat pomocí kombinace jeho typu a cesty. Když během vyhodnocení dotazu dojde ke zdroji dat, modul M se pokusí najít odpovídající přihlašovací údaje. Pokud se nenajde žádné přihlašovací údaje, modul vrátí speciální chybu, která v Power Query zobrazí výzvu k zadání přihlašovacích údajů.

Hodnota Kind pochází z definice Druh zdroje dat.

Hodnota Path je odvozena z požadovaných parametrů funkce zdroje dat. Volitelné parametry se do identifikátoru cesty ke zdroji dat nefaktorují. V důsledku toho musí mít všechny funkce zdroje dat přidružené k typu zdroje dat stejné parametry. Pro funkce, které mají jeden parametr typu Uri.Type, je speciální zpracování . Podrobnosti získáte v části Functions s parametrem URI.

Příklad uložení přihlašovacích údajů v dialogovém okně Nastavení zdroje dat v Power BI Desktopu. V tomto dialogovém okně je druh reprezentován ikonou a hodnota Cesta se zobrazí jako text.

Snímek obrazovky s přihlašovacími údaji nastavení zdroje dat

Poznámka:

Pokud během vývoje změníte požadované parametry funkce zdroje dat, dříve uložené přihlašovací údaje přestanou fungovat (protože hodnoty cest se už neshodovaly). Při změně parametrů funkce zdroje dat byste měli odstranit všechny uložené přihlašovací údaje. Pokud jsou nalezeny nekompatibilní přihlašovací údaje, může se zobrazit chyba za běhu.

Formát cesty ke zdroji dat

Hodnota Cesta pro zdroj dat je odvozena z požadovaných parametrů funkce zdroje dat. Požadované parametry lze z cesty vyloučit přidáním DataSource.Path = false do metadat funkce. Další informace najdete v tématu Vyloučení požadovaných parametrů z cesty ke zdroji dat.

Ve výchozím nastavení uvidíte skutečnou hodnotu řetězce v dialogovém okně Nastavení zdroje dat v Power BI Desktopu a v příkazovém řádku s přihlašovacími údaji. Pokud definice druh zdroje dat obsahovala Label hodnotu, zobrazí se místo toho hodnota popisku.

Například funkce zdroje dat v ukázce HelloWorldWithDocs má následující podpis:

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

Funkce má jeden povinný parametr (message) typu texta slouží k výpočtu cesty ke zdroji dat. Volitelný parametr (count) se ignoruje. Cesta by se zobrazila takto:

Výzva k zadání pověření

Snímek obrazovky s výzvou k zadání přihlašovacích údajů s cestou

Uživatelské rozhraní nastavení zdroje dat

Snímek obrazovky s uživatelským rozhraním nastavení zdroje dat

Pokud je definována hodnota Popisek, hodnota cesty ke zdroji dat se nezobrazuje:

Snímek obrazovky s nastavením zdroje dat s definovaným popiskem

Poznámka:

V současné době doporučujeme, abyste pro zdroj dat nezahrnuli popisek, pokud má vaše funkce požadované parametry, protože uživatelé nebudou moct rozlišovat mezi různými přihlašovacími údaji, které zadali. Doufáme, že to v budoucnu vylepšíme (to znamená, že datovým konektorům umožníte zobrazit vlastní cesty ke zdroji dat).

Vyloučení požadovaných parametrů z cesty ke zdroji dat

Pokud chcete, aby byl požadován parametr funkce, ale neměl být zahrnut jako součást cesty ke zdroji dat, můžete přidat DataSource.Path = false do metadat dokumentace funkce. Tuto vlastnost lze přidat do jednoho nebo více parametrů pro vaši funkci. Toto pole odebere hodnotu z cesty ke zdroji dat (což znamená, že už není předána vaší TestConnection funkci), takže by se měla používat jenom pro parametry, které nejsou potřeba k identifikaci zdroje dat, nebo rozlišovat mezi přihlašovacími údaji uživatele.

Například konektor v ukázce HelloWorldWithDocs by pro různé message hodnoty vyžadoval jiné přihlašovací údaje. Přidání DataSource.Path = false parametru message ho odebere z výpočtu cesty ke zdroji dat, čímž se spojnice "singleton". Všechna volání HelloWorldWithDocs.Contents se považují za stejný zdroj dat a uživatel zadá přihlašovací údaje jenom jednou.

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

Funkce s parametrem URI

Vzhledem k tomu, že zdroje dat s identifikátorem založeným na identifikátoru URI jsou tak běžné, je v uživatelském rozhraní Power Query při práci s cestami zdroje dat založenými na identifikátoru URI speciální zpracování. Když dojde ke zdroji dat založeným na identifikátoru URI, zobrazí se dialogové okno s přihlašovacími údaji rozevírací seznam, který uživateli umožňuje vybrat základní cestu místo úplné cesty (a všechny cesty mezi).

Snímek obrazovky s dialogovým oknem přihlašovacích údajů zobrazující cestu nastavení, na kterou se přihlašovací údaje vztahují

Protože Uri.Type se jedná o přiřazený typ místo primitivního typu v jazyce M, budete muset použít funkci Value.ReplaceType k označení, že textový parametr by měl být považován za identifikátor URI.

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