Kopīgot, izmantojot


Vaicājumu dati, izmantojot portālu tīmekļa API

Varat izmantot pieejamās tīmekļa API operācijas progrtammā Power Pages. Web API operācijas sastāv no HTTP pieprasījumiem un atbildēm. Šajā rakstā ir parādītas parauga lasīšanas operācijas, metodes, URI, un JSON paraugs, ko varat izmantot HTTP pieprasījumā.

Priekšnoteikumi

  • Jūsu vietnes versijai ir jābūt 9.4.1.x vai jaunākai.

  • Iespējot tabulu un lauku tīmekļa API operācijām. Papildu informācija: Tīmekļa API vietnes iestatījumi

  • Portālu Web API piekļūst tabulu ierakstiem un ievēro tabulas atļaujas, kas lietotājiem tiek dotas, izmantojot saistītās tīmekļa lomas. Pārliecinieties, vai ir konfigurētas pareizās tabulu atļaujas. Papildu informācija: Tīmekļa lomu izveide

Piezīmes

Atsaucoties uz Dataverse tabulām, kas izmanto portālu Web API, ir jāizmanto EntitySetName, piemēram, lai piekļūtu uzņēmuma tabulai, koda sintakse izmantos uzņēmumu EntitySetName.

Vaicājuma ieraksti

Tālāk sniegtajā piemērā tiek vaicājumi par uzņēmumu ierakstiem:

Operācija Metode URI
Izgūt tabulu ierakstus SAŅEMT [Portal URI]/_api/accounts

Piemērs:
https://contoso.powerappsportals.com/_api/accounts

atbilde paraugs

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

Izmantojiet $select un $top sistēmas vaicājuma opcijas, lai atgrieztu pirmo trīs uzņēmumu nosaukuma rekvizītu:

Operācija Metode URI
Izgūt pirmos trīs entītiju ierakstus SAŅEMT [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Izgūt uzņēmumu, izmantojot uzņēmuma ID:

Operācija Metode URI
Izgūt noteiktu ieraksta rekvizītu SAŅEMT [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

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

atbilde paraugs

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

Sistēmas vaicājuma opciju izmantošana

Katra no sistēmas vaicājuma opcijām, ko pievienojat entītiju kopas URL, tiek pievienota, izmantojot vaicājuma virkņu sintaksi. Pirmais tiek pievienots pēc [?], un tālāk norādītās vaicājuma opcijas tiek atdalītas, izmantojot [&]. Visas vaicājuma opcijas ir reģistrjutīgas, kā parādīts šajā piemērā:

Metode URI
SAŅEMT [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Pieprasīt noteiktus rekvizītus

Izmantojiet $select vaicājuma opciju, lai ierobežotu atgrieztos rekvizītus, kā parādīts šajā piemērā:

Metode URI
SAŅEMT [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Svarīgi

Šī ir veiktspējas paraugprakse. Ja rekvizīti nav norādīti un ir konfigurēta vietnes iestatījuma Webapi/<table name>/fields vērtība uz *, tad visi rekvizīti tiks atgriezti, izmantojot $select. Ja nav norādīts neviens rekvizīts, tiks atgriezta kļūda.

Rezultātu filtrēšana

Izmantojiet $filter sistēmas vaicājuma opciju, lai iestatītu kritērijus, kurām tiek atgrieztas rindas.

Standarta filtra operatori

Tīmekļa API atbalsta standarta OData filtra operatorus, kas norādīti tālāk sniegtajā tabulā:

Operatora Apraksts Piemērs
Salīdzināšanas operatori
eq Vienāds $filter=Ieņēmumu eq 100000
ne Nav vienāds $filter=ieņēmumi ne 100000
gt Ir lielāks nekā $filter=ieņēmumi gt 100000
ge Lielāks par vai vienāds ar $filter=ieņēmumi ge 100000
lt Ir mazāks nekā $filter=ieņēmumi lt 100000
le Mazāks par vai vienāds ar $filter=ieņēmumi le 100000
Loģiskie operatori
UN Loģisks un $filter=Ieņēmumi LT 100000 un ieņēmumi GT 2000
or Loģisks vai $filter=satur(nosaukums,'(paraugs)') vai satur(nosaukums,'tests')
not Loģiskais noliegums $filter=nesatur(nosaukums,'paraugs')
Operatoru grupēšana
( ) Prioritārā grupēšana (satur(nosaukums,'paraugs') vai satur(nosaukums,'tests')) un ieņēmumus GT 5000

Standarta vaicājuma funkcijas

Tīmekļa API atbalsta šīs standarta OData virknes vaicājuma funkcijas:

Funkcija Piemērs
contains $filter=satur(nosaukums,'(paraugs)')
endswith $filter=endswith(nosaukums,'Inc.')
startswith $filter=sākas ar(vārds,'a')

Dataverse vaicājuma funkcijas

Tīmekļa API atbalsta vaicājumu funkcijas Dataverse, lai filtrētu rezultātus. Papildu informāciju skatiet Tīmekļa API atsauce uz vaicājuma funkciju.

Rezultātu kārtošana

Norādiet secību, kādā vienumi tiek atgriezti, izmantojot $orderby vaicājuma opciju. Izmantojiet asc vai desc sufiksu, lai attiecīgi norādītu augošu vai dilstošu secību. Noklusējuma vērtība tiek augošā secībā, ja netiek lietots sufikss. Šajā piemērā parādīts, kā izgūt to uzņēmumu nosaukumu un ieņēmumu rekvizītus, kas pasūtīti, augošā secībā pārsniedzot ieņēmumus, pēc nosaukuma dilstošā secībā.

Metode URI
SAŅEMT [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Rezultātu apkopošana un grupēšana

Izmantojot $apply, jūs varat apkopot un grupēt datus dinamiski, kā redzams tālāk norādītajos piemēros:

Scenārijus Piemērs
Vaicājuma unikālo statusu saraksts accounts?$apply=groupby((statuscode))
Prognozētās vērtības kopsumma iespējas?$apply=kopsumma(aplēstā vērtība ar summu kā kopsummu)
Vidējais darījuma lielums, pamatojoties uz prognozēto vērtību un statusu iespējas?$apply=groupby((statuscode),aggregate(aplēstā vērtība ar vidējo vērtību kā vidējo vērtību)
Uz statusu pamatota prognozējamās vērtības summa iespējas?$apply=groupby((statuscode),aggregate(estimatedvalue ar summu kā kopsummu))
Iespējas ieņēmumu kopsumma pēc uzņēmuma nosaukuma iespējas?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue ar summu kā kopsummu))
Uzņēmumu primārie kontaktpersonu vārdi vārdā 'WA' accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Pēdējā izveidota ieraksta datums un laiks accounts?$apply=aggregate(createdon ar max kā lastCreate)
Pirmā izveidotā ieraksta datums un laiks accounts?$apply=aggregate(createdon ar min kā firstCreate)

Rindu skaita izgūšana

Izmantojiet $count vaicājuma opciju ar vērtību patiess, lai iekļautu entītiju skaitu, kas atbilst filtra kritērijiem, līdz pat 5 000.

Metode URI
SAŅEMT [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

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

atbilde paraugs

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

Ja nevēlaties atgriezt datus, izņemot skaitu, varat lietot $count jebkurai kolekcijai, lai iegūtu tikai vērtību.

Metode URI
SAŅEMT [Portal URI/_api/accounts/$count

Piemērs:
https://contoso.powerappsportals.com/_api/accounts/$count

atbilde paraugs

3

Kolonnu salīdzināšana

Šajā piemērā parādīts, kā salīdzināt kolonnas, izmantojot tīmekļa API:

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

Piemērs:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

Navigācijas rekvizītos izmantojiet $expand sistēmas vaicājuma opciju, lai kontrolētu, kādi dati no saistītām entītijām tiek atgriezti.

Ar navigācijas rekvizītu saistīta uzmeklēšana

Izmantojot vaicājuma opciju $expand , kā uzmeklēšanas atribūts ir jāizmanto Microsoft.Dynamics.CRM.associatednavigationproperty .

Lai noteiktu atribūta Microsoft.Dynamics.CRM.associatednavigationproperty, varat kolonnai veikt šādu http GET pieprasījumu, izmantojot šādu nosaukuma piešķiršanas metodi: _name_value.

Nākamajā piemērā varam noteikt saistīto Uzņēmuma tabulas Primārās kontaktpersonas kolonnas navigācijas rekvizītu, norādot kolonnas nosaukumu primarycontactid, formatējot pieprasījumā nosaukumu: _primarycontactid_value.

Metode URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Piemērs
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

atbilde paraugs

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

Atbildes rakstā redzams, ka saistītais navigācijas rekvizīts ir primarycontactid. Saistītais navigācijas rekvizīts var būt vai nu uzmeklēšanas kolonnas loģiskais nosaukums, vai shēmas nosaukums atkarībā no tabulas izveides.

Papildinformāciju skatiet sadaļā Datu izgūšana par uzmeklēšanas rekvizītiem.

Šajā piemērā parādīts, kā izgūt kontaktpersonu visiem uzņēmuma ierakstiem. Attiecībā uz saistītajiem kontaktpersonu ierakstiem mēs izgūstam tikai contactid un fullname.

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

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

atbilde paraugs

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

Ja izvēršot kolekcijas vērtību navigācijas parametrus, lai izgūtu saistīto tabulu entītiju kopas, tad, ja ir dati, tiek atgriezts tikai viens padziļinātais līmenis. Pretējā gadījumā kolekcija atgriež tukšu masīvu.

Metode URI
SAŅEMT [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

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

Tālāk sniegtajā piemērā tiek parādīts, kā varat izvērst entītiju kopām saistītās entītijas, izmantojot gan vienas vērtības, gan kolekcijas vērtību navigācijas rekvizītus. Tabulas relācijas nosaukums ir jānorāda koda sintaksē.

Metode URI
SAŅEMT [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

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

Vaicājumu ieraksti, izmantojot FetchXml

Nododiet vaicājumu FetchXml kā URL kodētu virknes vērtību entītiju kopas kolekcijai, izmantojot vaicājuma parametru FetchXml.

Piemēram, lai izgūtu datus no uzņēmuma entītiju kopas, izveidojiet vaicājumu FetchXml, iestatot entītijas elementa nosaukuma parametru kontam.

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

Iepriekšējā vaicājuma URL kodētā virkne ir:

%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
Metode URI
SAŅEMT [Portal URI]/_api/accounts?fetchxml

Piemērs:
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

atbilde paraugs

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

Nākamā darbība

Portāli raksta, atjaunina un dzēš darbības, izmantojot tīmekļa API

Skatiet arī: