Muistiinpano
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoja.
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoja.
Tietojen muokkaamistoiminnot ovat www-ohjelmointirajapinnan keskeinen osa. Yksinkertaisten päivitys- ja poistotoimintojen lisäksi voit suorittaa toimintoja yhden taulukon sarakkeille (entiteetin määritteet) ja laatia päivityspyyntöjä , jotka joko päivittävät tai lisäävät tietoja sen mukaan, onko niitä olemassa.
Peruspäivitys
Päivitystoiminnot käyttävät HTTP-verbiä PATCH . Välitä JSON-objekti, joka sisältää päivitettävät ominaisuudet, tietuetta edustavaan URI:hin. Jos päivitys onnistuu, palautetaan vastaus, jonka tila 204 No Content on .
Ylätunniste If-Match: * varmistaa, että et luo uutta tietuetta suorittamalla päivityslisäystoiminnon vahingossa. Lisätietoja: Estä luominen upsert-tilassa.
Tärkeää
Kun päivität entiteettiä, sisällytä vain ne ominaisuudet, joita muutat pyynnön leipätekstissä. Päivittämällä aiemmin hakemasi entiteetin ominaisuudet ja lisäämällä kyseisen JSON-pyynnön päivität kunkin ominaisuuden, vaikka arvo on sama. Tämä saattaa aiheuttaa järjestelmätapahtumia, jotka voivat käynnistää liiketoimintalogiikan, joka odottaa arvojen muuttuneen. Tämä voi aiheuttaa sen, että ominaisuudet näyttävät päivittyneen valvontatiedoissa, kun ne eivät ole itse asiassa muuttuneet.
Kun päivität -ominaisuuden statecode , on tärkeää määrittää aina haluttu statuscodearvo .
statecode ja statuscode olla riippuvaisia arvoja. Tietylle arvolle voi olla useita kelvollisia statuscode arvoja, mutta kullekin statecode sarakkeelle statecode on määritetty yksittäinen DefaultStatus-arvo. Kun päivität statecode määrittämättä -statusarvoa statuscode, järjestelmä määrittää oletusarvon. Lisäksi kun valvonta on käytössä taulukossa ja statuscode sarakkeessa, sarakkeen statuscode muutettua arvoa ei talleteta valvontatietoihin, ellei sitä ole määritetty päivitystoiminnossa.
Note
Määritteiden määritykseen sisältyy RequiredLevel ominaisuus. Kun tämän asetuksena SystemRequiredon , et voi määrittää näille määritteille tyhjäarvoa. Lisätietoja: Määritteiden vaatimustaso
Tässä esimerkissä olemassa oleva tilitietue päivitetään arvolla accountid 00000000-0000-0000-0000-000000000001.
Pyytää:
PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-Match: *
{
"name": "Updated Sample Account ",
"creditonhold": true,
"address1_latitude": 47.639583,
"description": "This is the updated description of the sample account",
"revenue": 6000000,
"accountcategorycode": 2
}
Vastaus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Note
Lisätietoja entiteettien liittämisestä ja poistamisesta päivityksen yhteydessä on kohdassa Yksiarvoisten siirtymisominaisuuksien käyttäminen .
Päivitä palautettavat tiedot
Jos haluat noutaa tietoja päivittämästäsi entiteetistä, voit laatia pyyntösi PATCH niin, että luodun tietueen tiedot palautetaan. Tila on 200 (OK). Tämän tuloksen saamiseksi sinun on käytettävä pyynnön otsikkoa Prefer: return=representation .
Jos haluat hallita palautettavia ominaisuuksia, lisää $select kyselyasetus entiteettijoukon URL-osoitteeseen. Jos $expand kyselyasetusta käytetään, se ohitetaan.
Tässä esimerkissä päivitetään tilientiteetti ja palautetaan pyydetyt tiedot vastauksessa.
Pyytää:
PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json; charset=utf-8
Prefer: return=representation
If-Match: *
{"name":"Updated Sample Account"}
Vastaus:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: return=representation
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity",
"@odata.etag": "W/\"536537\"",
"accountid": "00000000-0000-0000-0000-000000000001",
"accountcategorycode": 1,
"description": "This is the description of the sample account",
"address1_latitude": 47.63958,
"creditonhold": false,
"name": "Updated Sample Account",
"createdon": "2016-09-28T23:14:00Z",
"revenue": 5000000.0000,
"_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
}
Useiden tietueiden päivittäminen yhdessä pyynnössä
Nopein tapa päivittää useita samantyyppisiä tietueita yhdessä pyynnössä on käyttää UpdateMultiple-toimintoa. Tätä kirjoitettaessa UpdateMultiple-toiminto. Kaikki vakiotaulukot eivät tue tätä toimintoa, mutta kaikki joustavat taulukot tukevat.
Lisätietoja:
- Joukkotoimintaviestit
- Malli: WWW-ohjelmointirajapinta Joukkotoimintojen käyttäminen
- UpdateMultiple-taulukon käyttäminen elastisten taulukoiden kanssa
Yksittäisen ominaisuuden arvon päivittäminen
Kun haluat päivittää vain yhden ominaisuuden arvon, käytä pyyntöä PUT , jonka ominaisuuden nimi on liitetty entiteetin Uri-arvoon.
Seuraavassa esimerkissä päivitetään name olemassa olevan account rivin ominaisuus arvolla accountid 00000000-0000-0000-0000-00000000000001.
Pyytää:
PUT [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{"value": "Updated Sample Account Name"}
Vastaus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Yksittäisen ominaisuuden arvon poistaminen
Jos haluat poistaa yksittäisen ominaisuuden arvon, käytä pyyntöä DELETE , jonka ominaisuuden nimi on liitetty entiteetin Uri-arvoon.
Seuraava esimerkki poistaa -ominaisuuden description arvon tilientiteetistä, jonka arvo on accountid 00000000-0000-0000-0000-000000000000000.
Pyytää:
DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Vastaus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Note
Tätä ei voi käyttää yksiarvoisen siirtymisominaisuuden kanssa kahden entiteetin erottamiseksi. Vaihtoehtoinen menetelmä on kohdassa Erottaminen yksiarvoisesta siirtymisominaisuudesta .
Taulukon rivin ylöspäin lisääminen
Päivityslisäystoiminto muistuttaa päivitystä. Se käyttää pyyntöä PATCH ja käyttää URI-tunnusta viittaamaan tiettyyn tietueeseen. Ero on siinä, että jos tietuetta ei ole olemassa, se luodaan. Jos se on jo olemassa, se päivitetään.
Päivityslisäys on arvokas, kun tietoja synkronoidaan ulkoisten järjestelmien välillä. Ulkoinen järjestelmä ei välttämättä sisällä viittausta Dataverse-taulukon perusavaimeen, joten voit määrittää Vaihtoehtoisia avaimia Dataverse-taulukolle käyttämällä ulkoisen järjestelmän arvoja, jotka yksilöivät tietueen molemmissa järjestelmissä. Lisätietoja: Vaihtoehtoisten avainten määrittäminen viiteriveille
Voit nähdä taulukon vaihtoehtoiset avaimet $metadata -palveluasiakirjan entiteettityypin huomautuksista. Lisätietoja: Vaihtoehtoiset avaimet.
Seuraavassa esimerkissä on taulukko, jonka nimellä sample_thing on vaihtoehtoinen avain, joka viittaa kahteen sarakkeeseen: sample_key1 ja sample_key2, jotka molemmat on määritetty tallentamaan kokonaislukuarvot.
Pyytää:
PATCH [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1) HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Content-Type: application/json
{
"sample_name": "1:1"
}
Saat saman vastauksen sekä luonti- että päivitystoiminnoille. Huomaa, OData-EntityId miten vastausotsikko käyttää avainarvoja tietueen GUID-perusavaintunnisteen sijaan.
Vastaus:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1)
Koska vastaus on sama, et voi tietää, onko toiminto edustettuna vai Create toimintonaUpdate.
Jos sinun on tiedettävä, voit käyttää pyynnön otsikkoa Prefer: return=representation . Tämän otsikon avulla saat 201 Created vastauksen, kun tietue luodaan, ja 200 OK vastauksen, kun tietue päivitetään. Tämä asetus lisää Retrieve toiminnon, joka vaikuttaa suorituskykyyn. Jos käytät Prefer: return=representation pyynnön otsikkoa, varmista, että $select se sisältää mahdollisimman vähän tietoja, mieluiten vain perusavainsarakkeen. Lisätietoja: Päivitä palautetut tiedot ja Luo palautettujen tietojen kanssa.
Kun käytät vaihtoehtoisia avaimia, vaihtoehtoisia avainarvoja ei pitäisi sisällyttää pyynnön runkoon.
- Kun päivityslisäys edustaa arvoa
Update, nämä vaihtoehtoiset avainarvot ohitetaan. Et voi päivittää vaihtoehtoisia avainarvoja, kun käytät niitä tietueen tunnistamiseen. - Kun upsert edustaa
Create, URL-osoitteessa olevat avainarvot määritetään tietueelle, jos niitä ei ole määritelty sisällössä. Niitä ei siis tarvitse sisällyttää pyynnön runkoon.
Lisätietoja: Upsertin käyttäminen tietueen luomiseen tai päivittämiseen
Note
Yleensä uutta tietuetta luotaessa annetaan järjestelmän määrittää GUID-arvo perusavaimelle. Tämä on paras käytäntö, koska järjestelmä luo indeksille optimoituja avaimia, mikä parantaa suorituskykyä. Jos haluat kuitenkin luoda tietueen, jolla on tietty perusavainarvo, kuten silloin, kun ulkoinen järjestelmä luo avaimen GUID-arvon, upsert toiminto mahdollistaa tämän.
Estä luominen tai päivitys upsert-toiminnolla
Joskus joissakin tilanteissa haluat suorittaa upsert-toiminnon, mutta haluat estää jonkin mahdollisista toiminnoista: joko luomisen tai päivittämisen. Voit tehdä tämän käyttämällä - tai If-Match -If-None-Matchotsikoita. Lisätietoja on kohdassa Päivityslisäystoimintojen rajoittaminen.
Peruspoisto
Poistotoiminto on yksinkertainen. Käytä poistettavan DELETE entiteetin verbiä sen entiteetin URI:n kanssa, jonka haluat poistaa. Tämä esimerkkisanoma poistaa tilientiteetin, jonka perusavainarvo accountid on 00000000-0000-0000-0000-00000000000001.
Pyytää:
DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Vastaus:
Jos entiteetti on olemassa, saat normaalin vastauksen, jonka tila on 204. Se ilmaisee, että poisto onnistui. Jos entiteettiä ei löydy, saat vastauksen, jonka tila on 404.
HTTP/1.1 204 No Content
OData-Version: 4.0
Tarkista tietueiden duplikaatit
Lisätietoja siitä, miten voit tarkistaa tietueiden kaksoiskappaleet päivitystoiminnon aikana, on artikkelissa Kaksoiskappaleiden tunnistaminen Www-ohjelmointirajapinnan päivitystoiminnon aikana.
Useiden tietueiden poistaminen yhdessä pyynnössä
Nopein tapa poistaa useita samantyyppisiä tietueita yhdessä pyynnössä on käyttää toimintoa DeleteMultiple . Tätä kirjoitettaessa DeleteMultiple toiminto on esikatseluominaisuus. Vakiotaulukot eivät tue tätä toimintoa, mutta kaikki joustavat taulukot tukevat.
Note
Vakiotaulukoissa suosittelemme käyttämään BulkDelete-toimintoa, joka mahdollistaa kyselyä vastaavien tietueiden asynkronisen poistamisen. Lisätietoja: Tietojen poistaminen joukkona
Lisätietoja:
- Joukkotoimintaviestit
- Elastic-taulukon mallikoodi
- DeleteMultiple-rakenteen käyttö elastisten taulukoiden kanssa
Tallennusosioiden tiedostojen päivittäminen ja poistaminen
Jos olet päivittämässä tai poistamassa osioihin tallennettuja joustavan taulukon tietoja, muista määrittää osion avain, kun käytät kyseisiä tietoja.
Lisätietoja: PartitionId-arvon valitseminen
Katso myös
WWW-ohjelmointirajapinnan perustoimintojen malli (C#)
WWW-ohjelmointirajapinnan perustoimintojen malli (Client-side JavaScript)
Toimintojen suorittamiseen www-ohjelmointirajapinnan avulla
Http-pyyntöjen laatiminen ja virheiden käsitteleminen
Tietojen kyseleminen WWW-ohjelmointirajapinnan avulla
Taulukkorivin luominen WWW-ohjelmointirajapinnan avulla
Taulukon rivin noutaminen WWW-ohjelmointirajapinnan avulla
Taulukon rivien yhdistäminen ja erottaminen WWW-ohjelmointirajapinnan avulla
WWW-ohjelmointirajapintafunktioiden käyttäminen
Käytä verkko-ohjelmointirajapinnan toimintoja
Erätoimintojen suorittaminen WWW-ohjelmointirajapinnan avulla
Toiseksi käyttäjäksi tekeytyminen WWW-ohjelmointirajapinnan avulla
Ehdollisten toimintojen suorittaminen WWW-ohjelmointirajapinnan avulla