Partekatu bidez


Eguneratu eta ezabatu taulako errenkadak Web APIa erabiliz

Datuak aldatzen dituzten eragiketak Web APIaren funtsezko zatia dira. Eguneratze eta ezabatze eragiketa sinpleez gain, taula bakarreko zutabeetan (entitate-atributuak) eragiketak egin ditzakezu eta datuak eguneratzeko edo txertatzeko eskaerak osatu ditzakezu, 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 arrakastatsua bada, erantzunak honako 204 No Contentegoera itzultzen du.

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

Garrantzitsua da

Entitate bat eguneratzean, soilik sartu aldatzen ari zaren propietateak eskaeraren gorputzean. Entitate bat eguneratzen baduzu aurretik berreskuratu duzun entitate baten propietate guztiak sartuta, eragiketak propietate bakoitza eguneratzen du, nahiz eta balioa berdina izan. Eguneratze honek balioak aldatu direla espero duen negozio-logika aktibatzen duten sistemaren gertaerak sor ditzake. Propietateak auditoretza datuetan eguneratuta daudela ager daiteke benetan aldatu ez direnean.

Propietatea statecode eguneratzen duzunean, ezarri beti nahi duzuna statuscode. statecode Balioak elkarren statuscode menpe daude. Balio jakin statecode baterako, baliozko statuscode balio ugari egon daitezke. Hala ere, zutabe bakoitzak statecodeDefaultStatus balio bakarra du konfiguratuta. Eguneratzen statecode duzunean, , statuscodesistemak egoeraren balio lehenetsia ezartzen du. Gainera, taulan eta zutabean statuscode auditoretza gaitzen baduzu, zutabearen statuscode balio aldatua ez da auditoretzaren datuetan harrapatuko, eguneratze-eragiketan zehaztu ezean.

Oharra

Atributuen definizioak propietate bat RequiredLevel barne hartzen du. Propietate hau , ezartzen SystemRequireddenean, ezin dituzu atributu horiek balio nuluarekin ezarri. Informazio gehiago nahi izanez gero, ikus 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

Eguneratzean entitateak asoziatzeari eta desasoziatzeari buruzko informazioa lortzeko, ikus Balio bakarreko nabigazio-propietateak erabiltzea.

Eguneratu itzulitako datuekin

Eguneratzen ari zaren entitate bateko datuak berreskuratzeko, idatzi zure PATCH eskaera, 200 (OK) egoera duten erregistro eguneratuaren datuak itzul ditzan. Emaitza hori lortzeko, erabili eskaeraren goiburua Prefer: return=representation .

Zein propietate itzultzen diren kontrolatzeko, erantsi $select kontsulta aukera entitate multzoaren URLari. 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. Taula estandar guztiek ez dute ekintza hau onartzen, baina taula elastiko guztiek bai.

Informazio gehiago:

Eguneratu propietate bakarreko balioa

Propietate-balio bakar bat eguneratzeko, erabili eskaera bat PUT eta gehitu propietatearen izena entitatearen URIari.

Ondorengo adibideak lehendik dagoen errenkada baten propietatea eguneratzen name du accountid00000000-0000-0000-0000-000000000001.account

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 adibidean kontu-entitate accountid00000000-0000-0000-0000-000000000001baten propietatearen description balioa ezabatzen da.

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

Ezin duzu ikuspegi hau erabili balio bakarreko nabigazio-propietate batekin bi entitate bereizteko. Ikuspegi alternatibo bat lortzeko, ikus Disassociate by using a single-value navigation property.

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 hau erabiliz, erantzun bat 201 Created lortuko 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 erabiltzean, ez sartu gako alternatiboen balioak eskaeraren gorputzean.

  • 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 diozu gako primarioari. Praktika hau onena da, sistemak indizerako optimizatutako gakoak sortzen dituelako eta aukera honek 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, eragiketa potentzialetako bat egin upsert nahi duzu, baina saihestu nahi duzu: sortu edo eguneratu. Eragiketa horiek saihestu ditzakezu edo 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 gako accountid primarioaren balioa 00000000-0000-0000-0000-000000000001duen kontu-entitate 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 bakarrean mota bereko hainbat erregistro ezabatzeko, erabili ekintza hau DeleteMultiple . Taula estandarrek ez dute ekintza hau DeleteMultiple onartzen, baina taula elastiko guztiek bai.

Oharra

Taula estandarren kasuan, erabili Ezabatu masiboki ekintza. Ekintza honek kontsulta batekin bat datozen erregistroak ezabatzeko aukera ematen du. Informazio gehiago nahi izanez gero, ikus Ezabatu datuak masiboki.

Informazio gehiago:

Eguneratu eta ezabatu biltegiratze-partizioetako dokumentuak

Partizioetan gordetako taula elastikoen datuak eguneratzen edo ezabatzen ari bazara, zehaztu partizio-gakoa datu horietara sartzean.

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