Tietojen kysely portaalien verkko-ohjelmointirajapinnan avulla
Voit käyttää käytettävissä olevia verkko-ohjelmointirajapinnan toimintoja Power Pagesissa. Verkko-ohjelmointirajapinnan toiminnot koostuvat HTTP-pyynnöistä ja -vastauksista. Tässä artikkelissa on esimerkki lukutoiminnoista, -menetelmistä, URI:sta ja malli-JSON:ista, jota voit käyttää HTTP-pyynnössä.
Sivustoversion on oltava vähintään 9.4.1.x.
Ota taulukko ja kenttä käyttöön verkko-ohjelmointirajapinnan toiminnoissa. Lisätietoja: Verkko-ohjelmointirajapinnan sivustoasetukset
Portaalien Web API käyttää taulukon tietueita ja noudattaa taulukkoon liittyviä käyttöoikeuksia, jotka on annettu käyttäjille liittyvien WWW-roolien kautta. Varmista, että määrität oikeat taulukko-oikeudet. Lisätietoja: Verkkoroolien luominen
Huomautus
Kun viittaat Dataverse-taulukoihin käyttämällä portaalien verkkorajapintaa, käytä esimerkiksi EntitySetName-nimeä tilin taulukon käyttämiseen, koodisyntaksi käyttää tilien EntitySetName-nimeä tilit.
Seuraava esimerkki tekee kyselyjä tilitietueista:
Toiminto | Method | URI |
---|---|---|
Nouda taulukkotietueet | GET |
[Portal URI]/_api/accounts
Esimerkki: https://contoso.powerappsportals.com/_api/accounts |
Mallivastaus
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Palauta kolmen ensimmäisen tilin nimiominaisuus $select- ja $top-järjestelmäkyselyasetuksilla:
Toiminto | Method | URI |
---|---|---|
Kolmen ensimmäisen entiteettitietueen noutaminen | GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Nouda tili tilitunnuksen avulla:
Toiminto | Method | URI |
---|---|---|
Tietueen tietyn ominaisuuden noutaminen | GET |
[Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name
Esimerkki: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Mallivastaus
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Kaikki entiteettijoukon URL-osoitteeseen liitetyt järjestelmäkyselyasetukset lisätään kyselymerkkijonojen syntaksin avulla. Ensimmäinen liitetään [?]-merkin jälkeen, ja seuraavat kyselyasetukset erotetaan toisistaan [&]-merkillä. Kaikissa kyselyasetuksissa isot ja pienet kirjaimet tulkitaan eri merkeiksi seuraavan esimerkin mukaisesti:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
$select-järjestelmäkyselyn avulla voit rajoittaa palautettuja ominaisuuksia seuraavan esimerkin mukaisesti:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Tärkeä
Tämä on suorituskyvyn paras käytäntö. Jos ominaisuuksia ei ole määritetty ja olet määrittänyt Webapi/<table name>/fields
-sivustoasetuksen arvoksi *
, kaikki ominaisuudet palautetaan toiminnolla $select
. Jos ominaisuuksia ei ole määritetty, palautetaan virhe.
$filter-järjestelmäkyselyn avulla voit määrittää ehdot, joille rivit palautetaan.
Web-ohjelmointirajapinta tukee seuraavassa taulukossa lueteltuja OData-suodatinoperaattoreita:
Operator | Kuvaus | Esimerkiksi |
---|---|---|
Vertailuoperaattorit | ||
eq | Sama kuin | $filter=revenue eq 100000 |
ne | Eri kuin | $filter=revenue ne 100000 |
gt | Suurempi kuin | $filter=revenue gt 100000 |
ge | Suurempi tai yhtä suuri kuin | $filter=revenue ge 100000 |
lt | Pienempi kuin | $filter=revenue lt 100000 |
le | Pienempi tai yhtä suuri kuin | $filter=revenue le 100000 |
Loogiset operaattorit | ||
and | Looginen ja | $filter=revenue lt 100000 and revenue gt 2000 |
or | Looginen tai | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Looginen negaatio | $filter=not contains(name,'sample') |
Operaattoreiden ryhmittely | ||
( ) | Tärkeysjärjestyksen ryhmittely | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Web-ohjelmointirajapinta tukee seuraavia OData-merkkijonokyselyfunktioita:
Funktio | Esimerkiksi |
---|---|
sisältää | $filter=contains(name,'(sample)') |
päättyy | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Verkko-ohjelmointirajapinta Dataversen kyselyfunktioita tulosten suodattamista varten. Lisätietoja: Verkko-ohjelmistorajapinnan kyselyfunktion viite.
Määritä nimikkeiden palautusjärjestys $orderby-järjestelmäkyselyn avulla. Asc tai desc-jälkiliitteen avulla voit määrittää nousevan tai laskevan järjestyksen. Oletusarvo on nouseva, jos jälkiliitettä ei käytetä. Seuraavassa esimerkissä noudetaan nousevan tuoton ja laskevan nimen mukaan tilattujen tilien nimi ja tuotto-ominaisuudet.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
$apply-muuttujan avulla voit koostaa ja ryhmitellä tietoja dynaamisesti seuraavien esimerkkien mukaisesti:
Skenaariot | Esimerkiksi |
---|---|
Kyselyn yksilöllisten tilojen luettelo | accounts?$apply=groupby((statuscode)) |
Arvioidun arvon kokonaissumma | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Kaupan keskimääräinen koko arvioidun arvon ja tilan perusteella | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Tilan perusteella arvioidun arvon summa | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Mahdollisuuden kokonaistuotto asiakkaan nimen mukaan | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
WA-tilien ensisijaiset yhteyshenkilöiden nimet | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Viimeisen luodun tietueen päivämäärä ja aika | accounts?$apply=aggregate(createdon with max as lastCreate) |
Ensimmäisen luodun tietueen päivämäärä ja aika | accounts?$apply=aggregate(createdon with min as firstCreate) |
Käytä $count-järjestelmäkyselyasetusta, jonka arvo on tosi, ja sisällytä suodatinehtoja vastaavien entiteettien määrä enintään 5 000.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Mallivastaus
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Jos et halua palauttaa mitään tietoja lukuun ottamatta laskentaa, voit käyttää $count mihin tahansa kokoelmaan saadaksesi juuri arvon.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts/$count
Esimerkki: https://contoso.powerappsportals.com/_api/accounts/$count |
Mallivastaus
3
Seuraavassa esimerkissä näytetään, miten sarakkeita verrataan Web API:n avulla:
Method | URI |
---|---|
GET |
[Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname
Esimerkki: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Siirtymisominaisuuksien $expand-järjestelmäkyselyasetuksen avulla voit määrittää, mitä tietoja liittyvien entiteeteistä palautetaan.
Sinun täytyy käyttää hakumääritteenä Microsoft.Dynamics.CRM.associatednavigationproperty-ominaisuutta, kun käytät kyselyvaihtoehtoa $expand.
Voit tarkastaa määritteen Microsoft.Dynamics.CRM.associatednavigationproperty-ominaisuuden tekemällä sarakkeelle seuraavan http GET -pyynnön käyttämällä seuraavaa nimeämiskäytäntöä: _nimi_value.
Seuraavassa esimerkissä voimme tarkistaa Account-taulukon Primary Contact -sarakkeen liitetyn siirtymisominaisuuden määrittämällä sarakkeen nimen primarycontactid ja muotoilemalla nimen pyyntöön muodossa: _primarycontactid_value.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=_primarycontactid_value
Esimerkki https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Mallivastaus
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
Näemme vastauksesta, että liitetty siirtymisominaisuus on primarycontactid. Liitetty siirtymisominaisuus voi olla hakusarakkeen looginen nimi tai rakenteen nimi riippuen siitä, miten taulukko luotiin.
Lisätietoja on kohdassa Hakuominaisuuksien tietojen noutaminen.
Seuraavassa esimerkissä näytetään, miten kaikkien asiakastietueiden yhteyshenkilö noudetaan. Kun on kyse toisiinsa liittyvistä yhteystietotietueista, haemme vain yhteyshenkilön ja koko nimen.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Mallivastaus
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
Jos laajennat kokoelma-arvoisia siirtymisparametreja ja haet entiteettijoukkojen liittyvät taulukot, vain yksi syvyystaso palautetaan, jos tietoja on. Muussa tapauksessa kokoelma palauttaa tyhjän matriisin.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Hae liittyvät taulukot laajentamalla sekä yksittäisarvoisia ja kokoelma-arvoisia siirtymisominaisuuksia
Seuraavassa esimerkissä näytetään, miten voit laajentaa entiteettijoukkojen liittyviä entiteettejä käyttämällä sekä yksi- että kokoelma-arvoisia siirtymisominaisuuksia. Sinun täytyy määrittää taulukon suhteen nimi koodisi syntaksissa.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)
Esimerkki: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Portaalien verkko-ohjelmointirajapintaa käyttävät kirjoitus-, päivitys- ja poistotoiminnot