Dela via


TripPin del 1 – Dataanslutning för en OData-tjänst

Den här självstudien i flera delar beskriver hur du skapar ett nytt datakällans tillägg för Power Query. Självstudien är avsedd att utföras sekventiellt – varje lektion bygger på anslutningsappen som skapades i föregående lektioner och lägger stegvis till nya funktioner i anslutningsappen.

I den här lektionen kommer du att:

  • Skapa ett nytt Data Anslut eller-projekt med Power Query SDK
  • Skapa en basfunktion för att hämta data från en källa
  • Testa anslutningsappen i Power Query SDK
  • Registrera anslutningsappen i Power BI Desktop

Skapa en grundläggande OData-anslutning

I det här avsnittet skapar du ett nytt Data Anslut eller-projekt, tillhandahåller grundläggande information och testar den i Power Query SDK.

Öppna Visual Studio Code. Vi rekommenderar att du skapar en ny arbetsyta och sedan skapar ett nytt tilläggsprojekt. Om du vill skapa det nya tilläggsprojektet öppnar du utforskaren och i avsnittet Power Query SDK väljer du knappen Skapa ett tilläggsprojekt .

Skärmbild som betonar alternativet att skapa ett Power Query SDK-tilläggsprojekt.

När du har valt den här knappen uppmanas du att ange namnet på det nya projektet. Ge det här nya projektet TripPinnamnet .

Skärmbild av det nya tilläggsprojekt som skapats med namnet TripPin med hjälp av Power Query SDK.

Öppna filen TripPin.pq och klistra in följande anslutningsdefinition.

section TripPin;

[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);

TripPinImpl = (url as text) =>
    let
        source = OData.Feed(url)
    in
        source;

// Data Source Kind description
TripPin = [
    Authentication = [
        Anonymous = []
    ],
    Label = "TripPin Part 1 - OData"
];

// Data Source UI publishing description
TripPin.Publish = [
    Beta = true,
    Category = "Other",
    ButtonText = { "TripPin OData", "TripPin OData" }
];

Den här anslutningsdefinitionen innehåller:

  • En datakällas definitionspost för TripPin-anslutningsappen
  • En deklaration om att Implicit (anonym) är den enda autentiseringstypen för den här källan
  • En funktion (TripPinImpl) med en implementering som anropar OData.Feed
  • En delad funktion (TripPin.Feed) som anger parametertypen till Uri.Type
  • En publiceringspost för datakälla som gör att anslutningsappen kan visas i dialogrutan Hämta data i Power Query

Öppna filen TripPin.query.pq. Ersätt det aktuella innehållet med ett anrop till den exporterade funktionen.

TripPin.Feed("https://services.odata.org/v4/TripPinService/")

Innan du kan testa anslutningsappen måste du skapa den. Det gör du genom att gå till terminalen och välja alternativet Kör byggaktivitet... (Kortkommando Ctrl + Skift + B). Vi rekommenderar att du väljer alternativet MakePQX , men båda alternativen som är tillgängliga för att bygga bör fungera.

Skärmbild som visar hur du kör en bygguppgift innan du testar anslutningsappen.

Resultatet av den här åtgärden skapar en ny bin-mapp där den skapade anslutningsappen lagras som TripPin.mez.

Skärmbild av den nya bin-mappen som skapats där anslutningsfilen med ett mez-tillägg och ett namn TripPin.mez finns på.

Filen <project.query.pq> används för att testa ditt tillägg utan att behöva distribuera det till din Power BI Desktop-bin-mapp. Använd de verktyg som är tillgängliga i Power Query SDK:

  1. Välj alternativet ange autentiseringsuppgifter.
  2. Välj TripPin som datakälla.
  3. Välj filen TripPin.query.pq som fråge-/testfil.
  4. Välj anonym som autentiseringstyp.

I utdatadialogrutan visas ett meddelande som bekräftar att du har angett en autentiseringsuppgift för datakällan och informationen för varje autentiseringsuppgift som skapas.

Skärmbild av utdatadialogrutan som visar information om den nyligen skapade autentiseringen för TripPin-connecturen med hjälp av url:en som skickades i .query.pq-filen.

Kommentar

Du kan alltid rensa autentiseringsuppgifterna med kommandot Rensa ALLA autentiseringsuppgifter eller kontrollera de tillgängliga autentiseringsuppgifterna med kommandot Lista autentiseringsuppgifter i Power Query SDK-verktygen.

När autentiseringsuppgifterna nu är på plats väljer du filen TripPin.query.pq och väljer antingen rätt i dokumentet för att utvärdera aktuell power query-fil eller använder alternativet För att utvärdera aktuell fil från Power Query SDK-verktygen.

Skärmbild av flera alternativ för att utvärdera den aktuella Power Query-filen.

I utdatadialogrutan visas ett meddelande om resultatet från utvärderingen samt ett nytt fönster med namnet PQTest-resultat.

Skärmbild av resultatfönstret PQTest som visar resultatet av utvärderingen som körs.

PQTest-resultatfönstret består av tre flikar:

  • Utdata: Visar en förhandsgranskning av dina data i ett rutnät.
  • Sammanfattning: Allmän utvärderingsinformation som StartTime, EndTime, Duration, filen som användes för utvärderingen, status med mera.
  • DataSource: Innehåller information om datakällan som användes från sorten, funktionsnamnet och sökvägen.

Du kan prova några olika OData-URL:er i testfilen för att se hur olika resultat returneras. Till exempel:

  • https://services.odata.org/v4/TripPinService/Me
  • https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
  • https://services.odata.org/v4/TripPinService/People

Filen TripPin.query.pq kan innehålla enkla instruktioner, let-instruktioner eller fullständiga avsnittsdokument.

let
    Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
    People = Source{[Name="People"]}[Data],
    SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
    SelectColumns

Viktigt!

Se till att alltid spara dina filer när du arbetar. Om du gör ändringar i din TripPin.pq-fil bör du alltid utlösa en efterföljande bygguppgift för att se till att du testar mot den senaste versionen av anslutningsappen.

Öppna Fiddler för att samla in HTTP-trafik och kör frågan. Du bör se några olika begäranden att services.odata.org, som genereras av kombinationscontainerprocessen. Du kan se att åtkomsten till tjänstens rot-URL resulterar i statusen 302 och en omdirigering till den längre versionen av URL:en. Följande omdirigeringar är ett annat beteende som du får "kostnadsfritt" från basbiblioteksfunktionerna.

En sak att notera om du tittar på URL:erna är att du kan se frågedelegeringen som hände med -instruktionen SelectColumns . https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName

Om du lägger till fler transformeringar i din fråga kan du se hur de påverkar den genererade URL:en.

Det här beteendet är viktigt att notera. Även om du inte implementerade explicit vikningslogik ärver anslutningsappen dessa funktioner från funktionen OData.Feed . M-uttryck är compose-able – filterkontexter flödar från en funktion till en annan när det är möjligt. Detta liknar i begreppet hur datakällans funktioner som används i anslutningsappen ärver deras autentiseringskontext och autentiseringsuppgifter. I senare lektioner ersätter du användningen av OData.Feed, som har inbyggda vikningsfunktioner, med Web.Contents, vilket inte gör det. För att få samma nivå av funktioner måste du använda Table.View gränssnittet och implementera din egen explicita vikningslogik.

Läser in tillägget i Power BI Desktop

Om du vill använda tillägget i Power BI Desktop måste du kopiera anslutningsprojektets utdatafil (TripPin.mez) till katalogen Custom Anslut ors.

  1. Skapa en [Mina dokument]\Power BI Desktop\Custom Anslut ors-katalog.
  2. Kopiera tilläggsfilen (TripPin.mez) till den här katalogen.
  3. Kontrollera alternativet (rekommenderas inte) Tillåt att alla tillägg läses in utan validering eller varning i Power BI Desktop (under Filalternativ>och inställningar>Alternativ>Säkerhetsdatatillägg).>
  4. Starta om Power BI Desktop.
  5. Välj Hämta data > mer för att öppna dialogrutan Hämta data .

Du kan hitta tillägget genom att skriva dess namn i sökrutan.

Dialogrutan Hämta data.

Välj funktionsnamnet och välj Anslut. Ett meddelande från tredje part visas – välj Fortsätt för att fortsätta. Dialogrutan funktionsanrop visas nu. Ange rot-URL:en för tjänsten (https://services.odata.org/v4/TripPinService/) och välj OK.

Anropa funktion.

Eftersom det är första gången du kommer åt den här datakällan får du en uppmaning om autentiseringsuppgifter. Kontrollera att den kortaste URL:en är markerad och välj sedan Anslut.

Bild av fråga om autentiseringsuppgifter inställd på Anonym och nivåinställningen inställd på den kortaste URL:en.

Observera att i stället för att hämta en enkel datatabell visas navigatören. Det beror på att funktionen OData.Feed returnerar en tabell med särskilda metadata ovanpå den som Power Query-upplevelsen vet visas som en navigeringstabell. Den här genomgången beskriver hur du kan skapa och anpassa din egen navigeringstabell i en framtida lektion.

Navigeringstabell.

Välj tabellen Jag och välj sedan Transformera data. Observera att kolumnerna redan har tilldelade typer (ja, de flesta). Det här är en annan funktion i den underliggande funktionen OData.Feed . Om du tittar på begäranden i Fiddler ser du att du har hämtat tjänstens $metadata dokument. Motorns OData-implementering gör detta automatiskt för att fastställa tjänstens schema, datatyper och relationer.

Jag spelar in.

Slutsats

I den här lektionen gick vi igenom skapandet av en enkel anslutningsapp baserat på biblioteksfunktionen OData.Feed . Som du såg behövs lite logik för att aktivera en fullt fungerande anslutningsapp över OData basfunktionen. Andra utökningsbarhetsaktiverade funktioner, till exempel ODBC. DataSource, ge liknande funktioner.

I nästa lektion ersätter du användningen av OData.Feed med en mindre kapabel funktion – Web.Contents. Varje lektion implementerar fler anslutningsfunktioner, inklusive växling, metadata/schemaidentifiering och frågedelegering till OData-frågesyntaxen, tills din anpassade anslutningsapp har stöd för samma uppsättning funktioner som OData.Feed.

Nästa steg

TripPin del 2 – Data Anslut eller för en REST-tjänst