Megosztás a következőn keresztül:


Adatforrás elérési útjának kezelése

Az M motor az adatforrást a típus és az elérési út kombinációjával azonosítja. Amikor egy adatforrás egy lekérdezés kiértékelése során merül fel, az M motor megpróbálja megtalálni az egyező hitelesítő adatokat. Ha nem találhatók hitelesítő adatok, a motor egy speciális hibát ad vissza, amely egy hitelesítő kérést eredményez a Power Queryben.

A Kind érték az Adatforrás típusa definícióból származik.

Az Elérési út érték az adatforrásfüggvény szükséges paramétereibőlszármazik. Az opcionális paraméterek nem szerepelnek az adatforrás elérési útjának azonosítójában. Ennek eredményeképpen az adatforrástípushoz társított összes adatforrásfüggvénynek ugyanazokat a paramétereket kell tartalmaznia. A függvények speciális kezelése egyetlen típusú Uri.Typeparaméterrel rendelkezik. A részletekért nyissa meg a Functionst egy URI-paraméterrel .

A hitelesítő adatok tárolásának módját a Power BI Desktop Adatforrás beállításai párbeszédpanelén tekintheti meg. Ebben a párbeszédpanelen a Kind ikon jelenik meg, az Elérési út érték pedig szövegként jelenik meg.

Képernyőkép az adatforrás beállításainak hitelesítő adatairól.

Feljegyzés

Ha a fejlesztés során módosítja az adatforrásfüggvény szükséges paramétereit, a korábban tárolt hitelesítő adatok már nem működnek (mivel az elérési út értékei már nem egyeznek). A tárolt hitelesítő adatokat minden alkalommal törölnie kell, amikor módosítja az adatforrásfüggvény paramétereit. Ha nem kompatibilis hitelesítő adatokat talál, futásidőben hibaüzenet jelenhet meg.

Adatforrás elérési útja formátuma

Az adatforrás elérési útja az adatforrásfüggvény szükséges paramétereiből származik. A szükséges paraméterek a függvény metaadatainak hozzáadásával DataSource.Path = false kizárhatók az elérési útból. További információ: A szükséges paraméterek kizárása az adatforrás elérési útjából.

Alapértelmezés szerint a tényleges sztringértéket a Power BI Desktop Adatforrás beállításai párbeszédpaneljén és a hitelesítő adatokra vonatkozó parancssorban tekintheti meg. Ha az Adatforrás típusa definíció tartalmaz egy Label értéket, akkor a címke értéke jelenik meg.

A HelloWorldWithDocs minta adatforrásfüggvénye például a következő aláírást tartalmazza:

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

A függvény egyetlen kötelező paraméterrel (message) rendelkezik text, és az adatforrás elérési útjának kiszámítására szolgál. A választható paraméter (count) figyelmen kívül lesz hagyva. Az elérési út a következőképpen jelenik meg:

Hitelesítőadat-kérés

Képernyőkép a hitelesítőadat-kérésről az elérési úttal.

Adatforrás-beállítások felhasználói felülete

Képernyőkép az adatforrás beállításainak felhasználói felületéről.

Címkeérték definiálásakor az adatforrás elérési útja nem jelenik meg:

Képernyőkép az adatforrás beállításairól egy megadott címkével.

Feljegyzés

Jelenleg azt javasoljuk, hogy ne adjon meg címkét az adatforráshoz, ha a függvény rendelkezik szükséges paraméterekkel, mivel a felhasználók nem tudják megkülönböztetni a megadott hitelesítő adatokat. Reméljük, hogy a jövőben javítani fogjuk ezt (vagyis lehetővé tesszük, hogy az adatösszekötők megjelenítsék saját egyéni adatforrás-útvonalaikat).

Kötelező paraméterek kizárása az adatforrás elérési útjából

Ha azt szeretné, hogy szükség legyen egy függvényparaméterre, de ne szerepeljen az adatforrás elérési útjának részeként, hozzáadhatja DataSource.Path = false a függvénydokumentáció metaadatait. Ez a tulajdonság hozzáadható a függvény egy vagy több paraméteréhez. Ez a mező eltávolítja az értéket az adatforrás elérési útjából (ami azt jelenti, hogy már nem továbbítja a TestConnection függvénynek), ezért csak olyan paraméterekhez használható, amelyek nem szükségesek az adatforrás azonosításához vagy a felhasználói hitelesítő adatok megkülönböztetéséhez.

A HelloWorldWithDocs minta összekötőjéhez például eltérő hitelesítő adatokra lenne szükség a különböző message értékekhez. A paraméter hozzáadása DataSource.Path = falsemessage eltávolítja azt az adatforrás elérési útjának kiszámításából, így az összekötő "singleton" lesz. Minden hívás HelloWorldWithDocs.Contents ugyanazzal az adatforrással lesz kezelve, és a felhasználó csak egyszer ad meg hitelesítő adatokat.

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

Uri-paraméterrel rendelkező függvények

Mivel az Uri-alapú azonosítóval rendelkező adatforrások annyira gyakoriak, a Power Query felhasználói felületén speciálisan kezelhetők az URI-alapú adatforrások elérési útjai. Uri-alapú adatforrás esetén a hitelesítőadat-párbeszédpanel egy legördülő menüt biztosít, amely lehetővé teszi a felhasználó számára, hogy a teljes elérési út helyett az alap elérési utat válassza ki (és a közötte lévő összes elérési utat).

Képernyőkép a hitelesítő adatok párbeszédpaneléről, amelyen az a beállítási útvonal látható, amelyekre a hitelesítő adatok vonatkoznak.

Ahogy Uri.Type az M nyelvben nem primitív típus, hanem írott típus, a Value.ReplaceType függvényt kell használnia annak jelzéséhez, hogy a szöveges paramétert Uri-ként kell kezelni.

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