TripPin-osa 1 – OData-palvelun tietoliittin

Tässä moniosaisessa opetusohjelmassa käsitellään uuden tietolähdelaajennuksen luomista Power Querylle. Opetusohjelma on tarkoitus tehdä järjestyksessä – jokainen oppitunti perustuu aiemmilla oppitunneilla luotuun liittimeen ja lisää uusia ominaisuuksia liittimeen.

Tällä oppitunnilla:

  • Uuden Data Näyttöyhteys or-projektin luominen Visual Studio SDK:n avulla
  • Perusfunktion luominen tietojen noutamiseksi lähteestä
  • Liittimen testaaminen Visual Studiossa
  • Rekisteröi liitin Power BI Desktopissa

OData-perusliittimen luominen

Tässä osiossa luot uuden Data Näyttöyhteys tai -projektin, annat perustason tietoja ja testaat sitä Visual Studiossa.

Avaa Visual Studio ja luo uusi projekti. Valitse Power Query -kansiossa Data Näyttöyhteys or-projekti. Määritä tälle mallille projektin nimeksi TripPin.

VSProject.

Avaa TripPin.pq-tiedosto ja liitä se seuraavaan liittimen määritykseen.

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

Tämä liitinmääritys sisältää seuraavat:

  • TripPin-liittimen tietolähteen määritystietue
  • Määritys, jonka mukaan implisiittinen (anonyymi) on tämän lähteen ainoa todennustyyppi
  • Funktio (TripPinImpl) jossa on toteutus, joka kutsuu OData.Feed-funktiota
  • Jaettu funktio (TripPin.Feed), joka määrittää parametrin tyypiksi Uri.Type
  • Tietolähde, joka julkaisee tietueen, jonka avulla liitin voi näkyä Power BI :n Nouda tiedot -valintaikkunassa

Avaa TripPin.query.pq-tiedosto. Korvaa nykyinen sisältö viedyn funktion kutsulla.

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

Käynnistä M-kysely-apuohjelma valitsemalla Käynnistä-painike .

<Project.query.pq-tiedostoa> käytetään pidennyksen testaamiseen ilman, että sitä tarvitsee ottaa käyttöön Power BI Desktopin roskakorikansiossa. Käynnistä-painikkeenvalitseminen (tai F5-painikkeen painaminen) kääntää laajennuksen automaattisesti ja käynnistää M-kysely-apuohjelman.

Kyselyn suorittaminen ensimmäistä kertaa aiheuttaa tunnistetietovirheen. Power Queryssa isännöintisovellus muuntaisi tämän virheen tunnistetietokehotteeksi. Visual Studiossa saat samanlaisen kehotteen, joka ilmoittaa, mistä tietolähteestä puuttuu tunnistetiedot ja sen tietolähteen polku. Valitse lyhyin tietolähteen poluista (https://services.odata.org/)– tämä käyttää tunnistetietojasi kaikissa tämän polun URL-osoitteissa.

Valitse anonyymi tunnistetietotyyppi ja valitse sitten Määritä tunnistetiedot.

Image of M Query Output dialog, with the Errors tab selected, and the Data Source Path filled in and the Credential Type set to Anonymous.

Sulje valintaikkuna valitsemalla OK ja valitse sitten Käynnistä-painike uudelleen. Näkyviin tulee kyselyn suorittamisen tila -valintaikkuna ja lopuksi Kyselyn tulos -taulukko, jossa näkyvät kyselystä palautetut tiedot.

Query results.

Voit kokeilla muutamia eri OData-URL-osoitteita testitiedostossa nähdäksesi, miten eri tulokset palautetaan. Esimerkkejä:

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

TripPin.query.pq-tiedosto voi sisältää yksittäisiä lausekkeita, let-lausekkeita tai täydellisiä osan asiakirjoja.

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

Avaa Fiddler , jotta voit siepata HTTP-liikenteen, ja suorita kysely. Sinun pitäisi nähdä muutamia eri pyyntöjä services.odata.org koostesäilöprosessin luomana. Huomaat, että palvelun URL-pääkansion käyttäminen johtaa 302-tilaan ja uudelleenohjauksen URL-osoitteen pidempään versioon. Seuraavat uudelleenohjaukset ovat toinen toiminta, jonka saat "ilmaiseksi" peruskirjastofunktioista.

URL-osoitteita tarkastelemalla kannattaa huomata, että voit nähdä lausekkeen sisältävän kyselyn delegoinnin lähteeseen SelectColumns . https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName

Jos lisäät kyselyyn muunnoksia, näet, miten ne vaikuttavat luotuun URL-osoitteeseen.

Tämä toiminta on tärkeää huomioida. Vaikka et ottanut eksplisiittistä taittologiikkaa käyttöön, liittimesi perii nämä ominaisuudet OData.Feed-funktiosta. M-lausekkeet ovat laadintakykyisiä – suodatinkontekstit kulkevat funktiosta toiseen aina, kun se on mahdollista. Tämä on käsitteeltään samanlainen kuin liittimessä käytetty tietolähdefunktio perii todennuskontekstinsa ja tunnistetietonsa. Myöhemmillä oppitunneilla korvaat OData.Feedin, jossa on alkuperäiset taitosominaisuudet, käyttö web.contents-tiedostolla, mikä ei. Jos haluat saada saman ominaisuustason, sinun on käytettävä - Table.View liittymää ja käytettävä omaa eksplisiittistä taitettavaa logiikkaa.

Laajennuksen lataaminen Power BI Desktopissa

Jos haluat käyttää laajennusta Power BI Desktopissa, sinun on kopioitava liitinprojektin tulostetiedosto (TripPin.mez) Mukautettujen Näyttöyhteys ormien hakemistoon.

  1. Valitse Visual Studiossa Muodosta | Luo ratkaisu (F6) valikkoriviltä. Tämä luo .mez-tiedoston projektiasi varten. Oletusarvoisesti tämä tallennetaan projektisi bin\Debug-kansioon.
  2. [My Documents]\Power BI Desktop\Custom Connectors Luo hakemisto.
  3. Kopioi laajennustiedosto tähän hakemistoon.
  4. Valitse asetus (Ei suositeltu) Salli minkä tahansa laajennuksen lataaminen ilman vahvistusta tai varoitusta Power BI Desktopissa (kohdassa TiedostoAsetukset>ja vaihtoehdot>Asetukset>Tietoturvatietolaajennukset).>
  5. Käynnistä Power BI Desktop uudelleen.
  6. Valitse Nouda tiedot > Lisää tuodaksesi Nouda tiedot -valintaikkunan.

Voit paikantaa laajennuksen kirjoittamalla sen nimen hakuruutuun.

Get Data Dialog.

Valitse funktion nimi ja valitse Näyttöyhteys. Näyttöön tulee kolmannen osapuolen sanoma – jatka valitsemalla Jatka . Funktiokutsu-valintaikkuna tulee nyt näkyviin. Anna palvelunhttps://services.odata.org/v4/TripPinService/ () URL-pääosoite ja valitse OK.

Invoke Function.

Koska tämä on ensimmäinen kerta, kun käytät tätä tietolähdettä, näyttöön tulee tunnistetietojen kehote. Tarkista, että lyhin URL-osoite on valittuna, ja valitse sitten Näyttöyhteys.

Image of credential prompt set to Anonymous and the level setting set to the shortest URL.

Huomaa, että yksinkertaisen tietotaulukon hakemisen sijaan näkyviin tulee siirtymistoiminto. Tämä johtuu siitä, että OData.Feed-funktio palauttaa taulukon, jonka lisäksi on erityisiä metatietoja ja jonka Power Query -käyttökokemus tietää näkyvän siirtymistaulukkona. Näissä vaiheittaisissa ohjeissa kerrotaan, miten voit luoda ja mukauttaa omaa siirtymistaulukkoasi tulevalla oppitunnilla.

Nav Table.

Valitse Minä-taulukko ja valitse sitten Muunna tiedot. Huomaa, että sarakkeisiin on jo määritetty tyyppejä (no, useimmat niistä). Tämä on toinen ominaisuus taustalla olevassa OData.Feed-funktiossa . Jos katsot pyyntöjä Fiddlerissä, näet, että olet noutanut palvelun $metadata asiakirjan. Moduulin OData-toteutus tekee tämän automaattisesti palvelun rakenteen, tietotyyppien ja suhteiden määrittämiseksi.

Me Record.

Yhteenveto

Tällä oppitunnilla opit luomaan yksinkertaisen OData.Feed-kirjastoon perustuvan liittimen. Kuten näit, täysin toiminnallisen liittimen OData ottamiseksi käyttöön perustoiminnossa tarvitaan vain hyvin vähän logiikkaa. Muut laajennettavuus käytössä olevat funktiot, kuten ODBC. DataSource tarjoaa samankaltaisia ominaisuuksia.

Seuraavalla oppitunnilla korvaat OData.Feedin käytön vähemmän toimivan funktion , Web.Contentsin, avulla. Jokaisella oppitunnilla toteutetaan lisää liitinominaisuuksia, kuten sivutus, metatietojen/rakenteen tunnistaminen ja kyselyn delegointi OData-kyselyn syntaksiin, kunnes mukautettu liitin tukee samaa toimintovalikoimaa kuin OData.Feed.

Seuraavat vaiheet

TripPin-osa 2 – Tietojen Näyttöyhteys tai REST-palvelua varten