Partekatu honen bidez:


Eguneratu eta ezabatu taulako errenkadak Web APIa erabiliz

Datuak aldatzeko eragiketak Web APIaren funtsezko zatia dira. Eguneratze eta ezabatze eragiketa sinpleez gain, taula bakarreko zutabeetan (entitate-atributuak) eragiketak egin ditzakezu eta upsert eskaerak osatu, datuak eguneratuko edo txertatuko dituztenak, existitzen diren ala ez.

Oinarrizko eguneraketa

Eguneratze-eragiketek HTTP PATCH aditza erabiltzen dute. Eman eguneratu nahi dituzun propietateak dituen JSON objektu bat erregistroa irudikatzen duen URIra. Eguneratzea ongi etorri bada, egoera 204 No Content duen erantzuna itzultzen da.

Goiburuak If-Match: * ziurtatzen du ez duzula erregistro berririk sortzen upsert eragiketa bat ustekabean eginez. Informazio gehiago: Saihestu upsert-en sortzea.

Garrantzitsua da

Entitate bat eguneratzean, soilik sartu aldatzen ari zaren propietateak eskaeraren gorputzean. Aurretik berreskuratu duzun entitate baten propietateak eguneratu eta JSON hori zure eskaeran sartuta, propietate bakoitza eguneratuko da, nahiz eta balioa berdina izan. Horrek sistemaren gertaerak sor ditzake, balioak aldatu direla espero duten negozio-logika akar dezaketenak. Horrek eragin dezake propietateak eguneratu direla ikuskapen-datuetan, egia esan, benetan aldatu ez direnean.

Propietatea statecode eguneratzen duzunean, garrantzitsua da beti nahi duzuna statuscodeezartzea. statecode statuscode eta menpeko balioak dituzte. Balio jakin statecode baterako baliozko statuscode balio ugari egon daitezke, baina zutabe bakoitzak statecodeDefaultStatus balio bakarra du konfiguratuta. Eguneratzen statecodestatuscodeduzunean , egoeraren balio lehenetsia sistemak ezarriko du. Gainera, taulan eta zutabean statuscode auditoria gaituta dagoenean, zutabearen statuscode balio aldatua ez da auditoria-datuetan harrapatuko, eguneratze-eragiketan zehaztu ezean.

Oharra

Atributuen definizioak propietate bat RequiredLevel barne hartzen du. Hau hau ezartzen SystemRequireddenean, ezin dituzu atributu horiek balio nuluarekin ezarri. Informazio gehiago: Atributuen eskakizun maila

Adibide honek lehendik dagoen kontu-erregistro bat eguneratzen du accountid 00000000-0000-0000-00000-0000000000001 balioarekin.

Eskatu:

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  
}  

Erantzuna:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

Oharra

Ikus Balio bakarreko nabigazio-propietateak erabiltzea eguneratzean entitateak asoziatzeari eta disoziatzeari buruzko informazioa lortzeko.

Eguneratu itzulitako datuekin

Eguneratzen ari zaren entitate bateko datuak berreskuratzeko, zure PATCH eskaera idatzi dezakezu, sortutako erregistroko datuak 200 (OK) egoerarekin itzul daitezen. Emaitza hori lortzeko, eskaeraren goiburua Prefer: return=representation erabili behar duzu.

Zein propietate itzultzen diren kontrolatzeko, erantsi $select kontsulta-aukera URLari entitate-multzoari. Kontsulta-aukerari ez ikusi egingo zaio $expand erabiltzen bada.

Adibide honek kontu-entitate bat eguneratzen du eta erantzunean eskatutako datuak itzultzen ditu.

Eskatu:

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

Erantzuna:

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

Eguneratu hainbat erregistro eskaera bakarrean

Eskaera bakar batean mota bereko hainbat erregistro eguneratzeko modurik azkarrena EguneratuMultiplo ekintza erabiltzea da. Hau idazteko unean, UpdateMultiple ekintza. Taula estandar guztiek ez dute ekintza hau onartzen, baina taula elastiko guztiek bai.

Informazio gehiago:

Eguneratu propietate bakarreko balioa

Propietate-balio bakarra eguneratu nahi duzunean, erabili PUT entitatearen URIari erantsitako propietate-izena duen eskaera.

Ondorengo adibideak lehendik dagoen account errenkada baten propietatea eguneratzen name duaccountid: 00000000-0000-0000-00000000000001 balioarekin.

Eskatu:

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

Erantzuna:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

Ezabatu propietate-balio bakarra

Propietate bakar baten balioa ezabatzeko, erabili DELETE entitatearen URIari erantsitako propietate-izena duen eskaera.

Ondorengo adibideak 000000000-0000-0000-0000-0000-00000-0000000000001 balioa duen kontu-entitate accountid baten ondasunen balioa description ezabatzen du.

Eskatu:

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  

Erantzuna:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

Oharra

Hau ezin da erabili balio bakarreko nabigazio-propietate batekin bi entitate bereizteko. Ikuspegi alternatibo bat lortzeko, ikus Balio bakarreko nabigazio-propietate batekin asoziatzea .

Goratu taula errenkada bat

Upsert eragiketa eguneratze baten antzekoa da. Eskaera bat PATCH erabiltzen du eta URI bat erabiltzen du erregistro zehatz bati erreferentzia egiteko. Desberdintasuna da erregistroa existitzen ez bada, sortzen dela. Dagoeneko existitzen bada, eguneratu egiten da.

Upsert baliagarria da kanpoko sistemen arteko datuak sinkronizatzean. Baliteke kanpoko sistemak ez izatea Dataverse taulako gako primarioaren erreferentziarik, beraz, Dataverse taulako alternatiboak konfigura ditzakezu bi sistemetan erregistroa modu esklusiboan identifikatzen duten kanpoko sistemaren balioak erabiliz. Informazio gehiago: Definitu errenkadak erreferentzia egiteko gako alternatiboak

Taula baterako definitutako ordezko gakoak ikus ditzakezu $metadata zerbitzu-dokumentuko entitate motaren oharpenetan. Informazio gehiago: Gako alternatiboak.

Ondorengo adibidean, izeneko sample_thing taula bat, bi zutabe erreferentzia dituen gako alternatibo bat duena: sample_key1 eta sample_key2, biak osoko balioak gordetzeko definituta daudenak.

Eskatu:

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

Sortu edo eguneratzeko eragiketetan, erantzun bera jasoko duzu. Ikusi nola erantzunaren goiburuak OData-EntityId gako-balioak erabiltzen dituen erregistroaren GUID gako primarioaren identifikatzailearen ordez.

Erantzuna:

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)

Erantzuna berdina denez, ezin duzu jakin eragiketak a Create edo Update eragiketa adierazten duen.

Jakin nahi izanez gero, eskaera goiburua Prefer: return=representation erabil dezakezu. Goiburu honekin, erantzun bat 201 Created jasoko duzu erregistro bat sortzen denean eta erantzun bat 200 OK erregistroa eguneratzen denean. Aukera honek eragiketa bat Retrieve gehitzen du, eta horrek errendimenduan eragina du. Eskaera goiburua Prefer: return=representation erabiltzen baduzu, ziurtatu gutxieneko datu kopurua sartzen duzula $select , hobe lehen mailako gakoaren zutabea bakarrik. Informazio gehiago: Eguneratu itzulitako datuekin eta Sortu itzulitako datuekin.

Gako alternatiboak erabiltzerakoan, ez zenuke beste gako balioak eskaeraren gorputzean sartu behar.

  • Upsert batek , ordezko gako-balio Updatehauei ez ikusi egiten zaie. Ezin dituzu gako alternatiboen balioak eguneratu erregistroa identifikatzeko erabiltzen dituzunean.
  • Upsert Createbatek , URLaren gako-balioak erregistrorako ezartzen dira, gorputzean ez badaude. Beraz, ez da beharrezkoa eskaeraren gorputzean sartzea.

Informazio gehiago: Erabili Upsert erregistro bat sortzeko edo eguneratzeko

Oharra

Normalean, erregistro berri bat sortzean, sistemari GUID balio bat esleitzen utziko diozu gako primarioari. Praktika ona da, sistemak indizerako optimizatutako gakoak sortzen dituelako eta horrek errendimendua hobetzen duelako. Baina lehen mailako gakoaren balio zehatz batekin erregistro bat sortu behar baduzu, adibidez, kanpoko sistema batek gakoaren GUID balioa sortzen duenean, eragiketak upsert hori egiteko modu bat eskaintzen du.

Saihestu upsert-ekin sortzea edo eguneratzea

Batzuetan egoerak upsertdaude non , baina eragiketa potentzialetako bat saihestu nahi duzu: sortu edo eguneratu. Hori egin dezakezu OR If-None-Match goiburuak erabilizIf-Match. Informazio gehiago nahi izanez gero, ikus Mugatu upsert eragiketak.

Oinarrizko ezabatzea

Ezabatze-eragiketa erraza da. Erabili DELETE aditza ezabatu nahi duzun entitatearen URIarekin. Adibide mezu honek 000000000-0000-0000-0000-0000-000000000000001 balioa duen kontu-entitate accountid bat ezabatzen du.

Eskatu:

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  

Erantzuna:

Entitatea existitzen bada, 204 egoerarekin erantzun normal bat jasoko duzu ezabatzea arrakastatsua izan dela adierazteko. Entitatea aurkitzen ez bada, 404 egoerarekin erantzun bat jasoko duzu.

HTTP/1.1 204 No Content  
OData-Version: 4.0  

Egiaztatu erregistro bikoizturik dagoen

Eguneratze-eragiketa batean erregistro bikoiztuak nola egiaztatu jakiteko, ikus Web APIa erabiliz eguneratze eragiketan bikoiztuak detektatzea.

Ezabatu hainbat erregistro eskaera bakarrean

Eskaera bakar batean mota bereko hainbat erregistro ezabatzeko modurik azkarrena ekintza erabiltzea DeleteMultiple da. Hau idazteko unean, ekintza DeleteMultiple aurrebista bat da. Taula estandarrek ez dute ekintza hau onartzen, baina taula elastiko guztiek bai.

Oharra

Taula estandarren kasuan, Ezabatu masiboki ekintza erabiltzea gomendatzen dugu, kontsulta batekin bat datozen erregistroen ezabatze asinkronoa ahalbidetzen duena. Informazio gehiago: Ezabatu datuak masiboki

Informazio gehiago:

Eguneratu eta ezabatu biltegiratze-partizioetako dokumentuak

Partizioetan gordetako taula elastikoen datuak eguneratzen edo ezabatzen ari bazara, ziurtatu partizio-gakoa zehazten duzula datu horietara sartzerakoan.

Informazio gehiago: PartitionId balioa aukeratzea

Ikus ere

Web APIren oinarrizko eragiketen adibidea (C#)
Web APIren oinarrizko eragiketen adibidea (bezeroaren aldeko JavaScript)
Web API bidez eragiketak egitea
Konposatu HTTP eskaerak eta kudeatu erroreak
Datuak kontsultatzea WEB API bidez
Sortu taulako errenkada bat Web APIa erabiliz
Berreskuratu taulako errenkada bat Web APIa erabiliz
Lotu eta deslokatu taulako errenkadak Web APIa erabiliz
Erabili web APIaren funtzioak
Erabili Web API ekintzak
Exekutatu batch eragiketak Web APIa erabiliz
Beste erabiltzaile baten nortasuna irudikatzea Web APIa erabiliz
Egin baldintzapeko eragiketak Web APIa erabiliz