Obsługa ścieżki źródła danych
Aparat języka M identyfikuje źródło danych przy użyciu kombinacji typu i ścieżki. Gdy podczas oceny zapytania napotkano źródło danych, aparat języka M próbuje znaleźć pasujące poświadczenia. Jeśli nie znaleziono poświadczeń, aparat zwraca specjalny błąd, który powoduje wyświetlenie monitu o podanie poświadczeń w dodatku Power Query.
Wartość Kind pochodzi z definicji Rodzaj źródła danych.
Wartość Path pochodzi z wymaganych parametrów funkcji źródła danych. Parametry opcjonalne nie są uwzględniane w identyfikatorze ścieżki źródła danych. W związku z tym wszystkie funkcje źródła danych skojarzone z rodzajem źródła danych muszą mieć te same parametry. Istnieje specjalna obsługa funkcji, które mają jeden parametr typu Uri.Type
. Aby uzyskać szczegółowe informacje, przejdź do pozycji Funkcje z parametrem URI.
Przykład przechowywania poświadczeń można znaleźć w oknie dialogowym Ustawienia źródła danych w programie Power BI Desktop. W tym oknie dialogowym rodzaj jest reprezentowany przez ikonę, a wartość Ścieżka jest wyświetlana jako tekst.
Uwaga
Jeśli podczas programowania zmienisz wymagane parametry funkcji źródła danych, wcześniej przechowywane poświadczenia nie będą już działać (ponieważ wartości ścieżek nie są już zgodne). Wszelkie przechowywane poświadczenia należy usunąć za każdym razem, gdy zmienisz parametry funkcji źródła danych. W przypadku znalezienia niezgodnych poświadczeń może wystąpić błąd w czasie wykonywania.
Format ścieżki źródła danych
Wartość Ścieżka dla źródła danych pochodzi z wymaganych parametrów funkcji źródła danych. Wymagane parametry można wykluczyć ze ścieżki, dodając DataSource.Path = false
do metadanych funkcji. Aby uzyskać więcej informacji, zobacz Wykluczanie wymaganych parametrów ze ścieżki źródła danych.
Domyślnie rzeczywista wartość ciągu jest widoczna w oknie dialogowym Ustawienia źródła danych w programie Power BI Desktop i w wierszu polecenia poświadczeń. Jeśli definicja rodzaju źródła danych zawiera Label
wartość, zostanie wyświetlona wartość etykiety.
Na przykład funkcja źródła danych w przykładzie HelloWorldWithDocs ma następujący podpis:
HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...
Funkcja ma jeden wymagany parametr (message
) typu text
i służy do obliczania ścieżki źródła danych. Opcjonalny parametr (count
) jest ignorowany. Ścieżka będzie wyświetlana w następujący sposób:
Monit o poświadczenia
Interfejs użytkownika ustawień źródła danych
Po zdefiniowaniu wartości Etykieta wartość ścieżki źródła danych nie jest wyświetlana:
Uwaga
Obecnie zalecamy, aby nie dołączać etykiety dla źródła danych, jeśli funkcja ma wymagane parametry, ponieważ użytkownicy nie będą mogli odróżnić wprowadzonych poświadczeń. Mamy nadzieję, że poprawimy to w przyszłości (czyli umożliwimy łącznikom danych wyświetlanie własnych niestandardowych ścieżek źródła danych).
Wykluczanie wymaganych parametrów ze ścieżki źródła danych
Jeśli chcesz, aby parametr funkcji był wymagany, ale nie należy go dołączać w ramach ścieżki źródła danych, możesz dodać DataSource.Path = false
do metadanych dokumentacji funkcji. Tę właściwość można dodać do co najmniej jednego parametru funkcji. To pole usuwa wartość ze ścieżki źródła danych (co oznacza, że nie jest już przekazywane do TestConnection
funkcji), dlatego powinno być używane tylko dla parametrów, które nie są wymagane do identyfikowania źródła danych lub rozróżniania poświadczeń użytkownika.
Na przykład łącznik w przykładzie HelloWorldWithDocs wymaga różnych poświadczeń dla różnych message
wartości.
Dodanie DataSource.Path = false
do parametru message
powoduje usunięcie go z obliczeń ścieżki źródła danych, co skutecznie czyni łącznik "singleton". Wszystkie wywołania do HelloWorldWithDocs.Contents
programu są traktowane jako to samo źródło danych, a użytkownik udostępnia poświadczenia tylko 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""}})"
]}
];
Funkcje z parametrem identyfikatora URI
Ponieważ źródła danych z identyfikatorem opartym na identyfikatorze URI są tak powszechne, w interfejsie użytkownika dodatku Power Query istnieje specjalna obsługa podczas pracy ze ścieżkami źródła danych opartymi na identyfikatorze URI. Po napotkaniu źródła danych opartego na identyfikatorze URI okno dialogowe poświadczeń zawiera listę rozwijaną, która umożliwia użytkownikowi wybranie ścieżki podstawowej zamiast pełnej ścieżki (i wszystkich ścieżek między).
Podobnie jak Uri.Type
typ przypisany, a nie typ pierwotny w języku M, należy użyć funkcji Value.ReplaceType, aby wskazać, że parametr tekstowy powinien być traktowany jako identyfikator URI.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);