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.
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 text
a 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í
Uživatelské rozhraní nastavení zdroje dat
Pokud je definována hodnota Popisek, hodnota cesty ke zdroji dat se nezobrazuje:
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).
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);