Freigeben über


Verwalten des Datenquellenpfads

Die M-Engine identifiziert eine Datenquelle mithilfe einer Kombination aus Kind und Pfad. Wenn während einer Abfrageauswertung eine Datenquelle gefunden wird, versucht das M-Modul, übereinstimmende Anmeldeinformationen zu finden. Wenn keine Anmeldeinformationen gefunden werden, gibt das Modul einen speziellen Fehler zurück, der zu einer Eingabeaufforderung für Anmeldeinformationen in Power Query führt.

Der 'Kind'-Wert stammt aus der Definition der 'Datenquellenart'.

Der Path-Wert wird von den erforderlichen Parametern der Datenquellenfunktion abgeleitet. Optionale Parameter werden nicht in den Datenquellenpfadbezeichner eingeschlossen. Daher müssen alle Datenquellenfunktionen, die einem Datenquellentyp zugeordnet sind, dieselben Parameter aufweisen. Es gibt eine spezielle Behandlung für Funktionen, die einen einzelnen Parameter vom Typ Uri.Typeaufweisen. Wechseln Sie zu "Funktionen" mit einem URI-Parameter , um Details zu erhalten.

Im Dialogfeld " Datenquelleneinstellungen " in Power BI Desktop finden Sie ein Beispiel, wie Anmeldeinformationen gespeichert werden. In diesem Dialogfeld wird der Typ durch ein Symbol dargestellt, und der Pfadwert wird als Text angezeigt.

Screenshot der Anmeldeinformationen für Datenquelleneinstellungen.

Hinweis

Wenn Sie die erforderlichen Parameter der Datenquellenfunktion während der Entwicklung ändern, funktionieren zuvor gespeicherte Anmeldeinformationen nicht mehr (da die Pfadwerte nicht mehr übereinstimmen). Sie sollten alle gespeicherten Anmeldeinformationen jederzeit löschen, wenn Sie die Parameter der Datenquellenfunktion ändern. Wenn inkompatible Anmeldeinformationen gefunden werden, wird möglicherweise zur Laufzeit ein Fehler angezeigt.

Format des Datenquellenpfads

Der Pfadwert für eine Datenquelle wird aus den erforderlichen Parametern der Datenquellenfunktion abgeleitet. Erforderliche Parameter können vom Pfad ausgeschlossen werden, indem DataSource.Path = false zu den Metadaten der Funktion hinzugefügt wird. Weitere Informationen hierzu erhalten Sie unter "Ausschließen erforderlicher Parameter aus Dem Datenquellenpfad".

Standardmäßig wird der tatsächliche Zeichenfolgenwert im Dialogfeld " Datenquelleneinstellungen " in Power BI Desktop und in der Anmeldeinformationsaufforderung angezeigt. Wenn die Definition der Datenquellenart einen Label Wert enthält, wird stattdessen der Bezeichnungswert angezeigt.

Die Datenquellenfunktion im Beispiel "HelloWorldWithDocs " weist beispielsweise die folgende Signatur auf:

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

Die Funktion verfügt über einen einzelnen erforderlichen Parameter (message) vom Typ textund wird verwendet, um den Datenquellenpfad zu berechnen. Der optionale Parameter (count) wird ignoriert. Der Pfad wird wie folgt angezeigt:

Anmeldeaufforderung

Screenshot der Anmeldeinformationsaufforderung mit Pfad.

Benutzeroberfläche für Datenquelleneinstellungen

Screenshot der Benutzeroberfläche für Datenquelleneinstellungen.

Wenn ein Bezeichnungswert definiert ist, wird der Datenquellenpfadwert nicht angezeigt:

Screenshot der Einstellungen der Datenquelle mit einer definierten Beschriftung.

Hinweis

Es wird derzeit empfohlen, keine Bezeichnung für Ihre Datenquelle einzuschließen , wenn Ihre Funktion über erforderliche Parameter verfügt, da Benutzer nicht zwischen den von ihnen eingegebenen Anmeldeinformationen unterscheiden können. Wir hoffen, dies in Zukunft zu verbessern, indem wir Datenverbindungen ihre eigenen benutzerdefinierten Datenquellenpfade anzeigen lassen.

Ausschließen der erforderlichen Parameter aus dem Datenquellenpfad

Wenn ein Funktionsparameter erforderlich sein soll, aber nicht als Teil des Datenquellenpfads enthalten sein soll, können Sie den Metadaten der Funktionsdokumentation hinzufügen DataSource.Path = false . Diese Eigenschaft kann einem oder mehreren Parametern für Ihre Funktion hinzugefügt werden. Dieses Feld entfernt den Wert aus Dem Datenquellenpfad (d. h., dass er nicht mehr an Die TestConnection Funktion übergeben wird), sodass er nur für Parameter verwendet werden sollte, die nicht erforderlich sind, um Ihre Datenquelle zu identifizieren oder zwischen Benutzeranmeldeinformationen zu unterscheiden.

Der Connector im Beispiel "HelloWorldWithDocs " erfordert beispielsweise unterschiedliche Anmeldeinformationen für unterschiedliche message Werte. Durch Hinzufügen DataSource.Path = false zum message Parameter wird er aus der Berechnung des Datenquellenpfads entfernt, wodurch der Verbinder effektiv zu einem "Singleton" wird. Alle Aufrufe HelloWorldWithDocs.Contents werden als dieselbe Datenquelle behandelt, und der Benutzer stellt nur einmal Anmeldeinformationen bereit.

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

Funktionen mit einem URI-Parameter

Da Datenquellen mit einem URI-basierten Bezeichner so häufig sind, gibt es spezielle Behandlung in der Power Query-Benutzeroberfläche beim Umgang mit URI-basierten Datenquellenpfaden. Wenn eine URI-basierte Datenquelle gefunden wird, stellt das Dialogfeld "Anmeldeinformationen" eine Dropdownliste bereit, mit der der Benutzer den Basispfad anstelle des vollständigen Pfads (und alle Pfade dazwischen) auswählen kann.

Screenshot des Anmeldedialogs mit dem Einstellungspfad, auf den die Anmeldeinformationen angewendet werden.

Da Uri.Type ein zugeschriebener Typ und kein Grundtyp in der Sprache M ist, verwenden Sie die Value.ReplaceType-Funktion, um anzugeben, dass Ihr Textparameter als Uri behandelt werden soll.

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