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


Adatok lekérdezése portálok webes API-val

Használhatja a webes API elérhető műveleteit a Power Pages szolgáltatásban. A webes API műveletek HTTP-kérelmekből és-válaszokból állnak. A cikk a HTTP-kérelemben használható olvasásiművelet-példákat, módszereket, URI-kat és minta JSON formátumokat mutat be.

Előfeltételek

  • A webhelyverziónak 9.4.1.x vagy újabb verziónak kell lennie.

  • Tábla és mező engedélyezése a webes API-műveletekhez. További információ: A webes API webhelybeállításai

  • A portálok webes API-ja hozzáfér az táblarekordokhoz, és követi a társított webes szerepkörök segítségével a felhasználóknak adott táblaengedélyeket. Győződjön meg róla, hogy a megfelelő táblaengedélyeket konfigurálta. További információ: Webes szerepkörök létrehozása

Feljegyzés

Amikor a portálok webes API-t használó Dataverse-táblákra hivatkozik, az EntitySetName nevet kell használnia például a fiók táblához való hozzáféréshez, a kód szintaxisa a fiókok EntitySetName fájlját fogja használni.

Rekordok lekérdezése

A következő példa lekérdezi a partnerrekordokat:

Művelet Módszer URI
Táblarekordok lekérdezése KAP [Portal URI]/_api/accounts

Példa:
https://contoso.powerappsportals.com/_api/accounts

Minta válasz

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

A $select és $top rendszerlekérdezési opciók használatával az első három fiók névtulajdonságát adja vissza:

Művelet Módszer URI
Az első három entitásrekord lekérése KAP [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

A partner lekérése partnerazonosítóval:

Művelet Módszer URI
Egy rekord adott tulajdonságának lekérdezése KAP [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Példa:
https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Minta válasz

{
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}

Rendszerlekérdezési beállítások alkalmazása

Az entitáskészlet URL-jéhez hozzáfűzött rendszerlekérdezési opciók mindegyike a lekérdezési sztringek szintaxisának használatával kerül hozzáadásra. Az elsőt a [?] után fűzi hozzá, és a következő lekérdezési beállításokat [&] választja el egymástól. Minden lekérdezési opció megkülönbözteti a nagy- és kisbetűket, amint az a következő példában látható:

Módszer URI
KAP [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Kérelem konkrét tulajdonságai

A $select rendszerlekérdezés beállítással korlátozhatja a visszaadott tulajdonságokat a következő példában látható módon:

Módszer URI
KAP [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Fontos

Ez az ajánlott eljárás a teljesítmény szempontjából. Ha a tulajdonságok nincsenek megadva, és a Webapi/<table name>/fields webhelybeállítást * értékre konfigurálta, a rendszer a $select használatával minden tulajdonságot visszaad. Ha nincsenek tulajdonságok megadva, akkor hibaüzenet érkezik vissza.

Eredmények szűrése

A $filter rendszerlekérdezési beállítással megadhatja azokat a feltételeket, amelyek sorait adja vissza a rendszer.

Standard szűrőoperátorok

A webes API támogatja a következő táblában felsorolt szabványos OData-szűrőoperátorokat:

Operátor Leírás Példa
Összehasonlító operátorok
eq Egyenlő $filter=bevétel eq 100000
ne Nem egyenlő $filter=bevétel ne 100000
gt Nagyobb mint $filter=bevétel gt 100000
ge Nagyobb vagy egyenlő $filter=bevétel ge 100000
lt Kisebb mint $filter=bevétel lt 100000
le Kisebb vagy egyenlő $filter=bevétel le 100000
Logikai operátorok
and Logikai és $filter= Revenue LT 100000 és Revenue BT 2000
or Logikai vagy $filter=tartalmazza(név;'(minta)') vagy tartalmazza(név;'teszt')
not Logikai tagadás $filter=not contains(név;'minta')
Csoportosítási operátorok
( ) Elsőbbségi csoportosítás (tartalmazza(név,'minta') vagy tartalmazza(név,'teszt')) és bevétel gt 5000

Szabványos lekérdezési funkciók

A webes API az alábbi szabványos OData lekérdezési függvényeket támogatja:

Funkció Példa
tartalmazza $filter=tartalmazza(név;'(minta)')
endswith $filter=vége(név;'Inc.')
ezzelkezdődik $filter=Startswith(név;'a')

Dataverse-lekérdezési függvények

A webes API támogatja a eredmények szűréséhez használható Dataverse-lekérdezési függvényeket. További tudnivalók: Webes API lekérdezési függvényének referenciája.

Eredmények rendezése

Adja meg az elemek visszaadási sorrendjét az $orderby rendszerlekérdezési opcióval. Az asc vagy a desc utótagot használja a növekvő, illetve csökkenő sorrend jelzésére. Az alapértelmezett érték növekvő, ha az utótag nincs megadva. A következő példa a partnerek név- és bevételi tulajdonságainak lekérdezését mutatja növekvő bevétel és csökkenő név szerinti sorrendben.

Módszer URI
KAP [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Eredmények összesítése és csoportosítása

Az $apply használatával dinamikusan összesítheti és csoportosíthatja az adatokat a következő példákban látható módon:

Forgatókönyvek Példa
A lekérdezésben lévő egyedi állapotok listája fiókok?$apply=groupby((statuscode))
A becsült érték összesített összege lehetőségek?$apply=Összesített(Becsült érték, ahol az összeg összesen)
Az ügylet átlagos mérete a becsült érték és az állapot alapján lehetőségek?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
A becsült érték összege az állapot alapján lehetőségek?$apply=groupby((statuscode),aggregate(becsült érték az összeggel mint összesen))
Összes bevételi lehetőség fióknevek szerint lehetőségek?$apply=Groupby((parentAccountID/name),Aggregate(EstimatedValue with Sum as Total))
A WA fiókokkal rendelkező elsődleges kapcsolattartók neve fiókok?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Utoljára létrehozott rekord dátuma és időpontja accounts?$apply=aggregate(createdon with max as lastCreate)
Először létrehozott rekord dátuma és időpontja accounts?$apply=aggregate(createdon with min as firstCreate)

Sorok számának lekérése

A $count igaz értékű rendszerlekérdezés lehetőség használatával a szűrési feltételeknek megfelelő entitások számát adhatja meg 5000-ig.

Módszer URI
KAP [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Minta válasz

{
"@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"
    }
]
}

Ha a darabszámon kívül semmilyen adatot nem akar visszaadni, akkor a $count szűrőt bármelyik gyűjteményre alkalmazhatja, hogy csak az értéket kapja meg.

Módszer URI
KAP [Portal URI/_api/accounts/$count

Példa:
https://contoso.powerappsportals.com/_api/accounts/$count

Minta válasz

3

Oszlopok összehasonlítása

A következő példa bemutatja, hogyan hasonlíthat össze oszlopokat a webes API használatával:

Módszer URI
GET [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname

Példa:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

A navigációs tulajdonságokban a $expand rendszerlekérdezés beállítással szabályozhatja, hogy a kapcsolódó entitásokból milyen adatok kerüljenek visszaadásra.

Kapcsolódó navigációs tulajdonság keresése

A Microsoft.Dynamics.CRM.associatednavigationproperty tulajdonságot kell használnia keresési attribútumként a $expand lekérdezési lehetőség használatakor.

Egy attribútum Microsoft.Dynamics.CRM.associatednavigationproperty tulajdonságának meghatározásához a következő http GET kérelmet kell alkalmaznia a következő elnevezési konvenciót használó oszlophoz: _name_value.

A következő példában a Partner tábla Elsődleges kapcsolattartó oszlopához kapcsolódó navigációs tulajdonságot úgy határozhatjuk meg, hogy a primarycontactid oszlopnevet megadjuk a kérelemben a név alábbi formázásával: _primarycontactid_value.

Módszer URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Példa
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Minta válasz

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

A válaszból láthatjuk, hogy a kapcsolódó navigációs tulajdonság: primarycontactid. A társított navigációs tulajdonság lehet a keresési oszlop logikai neve vagy sémaneve a tábla létrehozási módjától függően.

További információ: Adatok lekérése a keresési tulajdonságokról.

A következő példa bemutatja, hogyan lehet lekérdezni az összes partnerrekord kapcsolattartóit. A kapcsolódó kapcsolattartói rekordok esetén csak a contactid és a fullname adatokat kérjük le.

Módszer URI
GET [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Példa:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Minta válasz

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

Ha a gyűjteményértékű navigációs paramétereket kibővíti az entitáskészletek kapcsolódó tábláinak lekérdezéséhez, a rendszer csak egy mélységi szintet ad vissza, ha van adat. Ellenkező esetben a gyűjtemény üres tömböt ad vissza.

Módszer URI
KAP [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Példa:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

A következő példa azt mutatja be, hogy hogyan bonthatja ki a kapcsolódó entitásokat az entitáskészletekhez egyértékű és gyűjteményértékű navigációs tulajdonságok használatával. Meg kell adnia a táblakapcsolat nevét a kód szintaxisában.

Módszer URI
KAP [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Példa:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Rekordok lekérdezése a FetchXml használatával

Adja át a FetchXml lekérdezést URL-kódolású karakterláncértékként az entitáskészlet-gyűjteménynek a FetchXml lekérdezési paraméter használatával.

Például az adatok lekéréséhez a partner entitáskészletből, állítson össze egy FetchXml lekérdezést, amely az entitáselem nevének paraméterét állítja be a partnerre.

<fetch top='2'>
  <entity name='account'>
      <attribute name='name' />
  </entity>
</fetch>

Az előző lekérdezés URL-kódolású karakterlánca a következő:

%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E
Módszer URI
KAP [Portal URI]/_api/accounts?fetchxml

Példa:
https://contoso.powerappsportals.com/_api/accounts?fetchXml=%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E

Minta válasz

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

Következő lépés

A portálok műveleteket írnak, frissítenek és törölnek a webes API használatával

Kapcsolódó információk