Freigeben über


Umgang mit Datenquellenpfad

Das M-Modul identifiziert eine Datenquelle mithilfe einer Kombination aus Typ 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 Wert Kind stammt aus der Definition Data Source Kind.

Der Wert Path wird aus den erforderlichen Parametern Ihrer Datenquellenfunktion abgeleitet. Optionale Parameter werden nicht in den Pfadbezeichner der Datenquelle einbezogen. 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.Type aufweisen. 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 die Art durch ein Symbol dargestellt, und der Pfadwert wird als Text angezeigt.

Screenshot der Anmeldeinformationen für die 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.

Pfadformat der Datenquelle

Der Pfad-Wert für eine Datenquelle wird aus den erforderlichen Parametern der Datenquellenfunktion abgeleitet. Erforderliche Parameter können vom Pfad ausgeschlossen werden, indem sie den Metadaten der Funktion hinzufügen DataSource.Path = false . 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 Wert Label enthält, wird stattdessen der Wert der Bezeichnung angezeigt.

Die Datenquellenfunktion im HelloWorldWithDocs-Beispiel 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 text und wird verwendet, um den Datenquellenpfad zu berechnen. Der optionale Parameter (count) wird ignoriert. Der Pfad wird wie folgt angezeigt:

Anmeldeaufforderung

Screenshot der Administratoranmeldeaufforderung mit Pfad.

Datenquelleneinstellungen-Benutzeroberfläche

Screenshot der Schaltfläche „Datenquelleneinstellungen“.

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

Screenshot der Datenquelleneinstellungen mit einer definierten Bezeichnung.

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 (d. h. Datenconnectors können ihre eigenen benutzerdefinierten Datenquellenpfade anzeigen).

Ausschließen der erforderlichen Parameter aus dem Datenquellenpfad

Wenn Sie möchten, dass ein Funktionsparameter erforderlich ist, aber nicht als Teil des Datenquellenpfads aufgenommen wird, können Sie DataSource.Path = false zu den Metadaten der Funktionsdokumentation hinzufügen. 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 HelloWorldWithDocs-Beispiel 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 Dialogfelds Anmeldeinformationen, das den Einstellungspfad anzeigt, für den die Anmeldeinformationen gelten.

Wie Uri.Type ist ein beschrifterter Typ und kein Grundtyp in der Sprache M, müssen Sie die Value.ReplaceType-Funktion verwenden, um anzugeben, dass der Textparameter als URI behandelt werden soll.

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