Erabili atariak Web APIa idatzi, eguneratu eta ezabatzeko eragiketak egiteko
Egin dezakezu eskuragarri dauden web APIen eragiketak atarietan. Web APIaren eragiketak HTTP eskaerek eta erantzunek osatzen dute. Artikulu honek HTTP eskaeretan erabil ditzakezun eragiketak, metodoak, URIak eta JSON laginak idatzi, eguneratu eta ezabatzeko laginak eskaintzen ditu.
Garrantzitsua da
- Atariaren bertsioak 9.3.3.x edo berriagoa izan behar du funtzio honek funtziona dezan.
Aurrebaldintzak
Gaitu taula eta eremua Web API eragiketetarako. Informazio gehiago: Web APIaren gune-ezarpenak
Atarietako Web APIak taula-erregistroak atzitzen ditu eta lotutako web-rolen bidez erabiltzaileei emandako taula-baimenei jarraitzen die. Ziurtatu taularen baimen egokiak konfiguratzen dituzula. Informazio gehiago: Sortu web-rolak
Sortu erregistro bat taula batean
Oharra
Dataverse taulak atarietako Web APIa erabiliz aipatzean, EntitySetName erabili behar duzu, adibidez, kontua taula atzitzeko, kodearen sintaxiak kontuak atalaren EntitySetName-a erabiliko du.
Oinarrizko Sortu
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Oinarrizko Sortu | BIDALI | [Atariaren URI]/_api/accounts | {"izena":"Laginaren kontua"} |
Eragiketa batean erlazionatutako taulako erregistroak sortzeko JSON lagina
Adibidez, Kontua taula-multzoan argitaratutako eskaera-gorputzak guztira lau taula berri sortuko ditu (kontua barne) kontua sortzeko testuinguruan.
- Kontaktu bat sortzen da
primarycontactid
balio bakarreko nabigazio-propietatearen objektu-propietate gisa zehaztuta dagoelako. - Abagune bat sortzen da,
opportunity_customer_accounts
bildumako nabigazio-propietate baten balioan ezarrita dagoen matrize baten barruan dagoen objektu gisa zehazten delako. - Zeregin bat sortzen da
Opportunity_Tasks
bildumako balio duen nabigazio-propietate baten balioan ezarritako matrize baten barruan objektu gisa zehaztuta dagoelako.
{
"name": "Sample Account",
"primarycontactid":
{
"firstname": "Alton",
"lastname": "Stott"
},
"opportunity_customer_accounts":
[
{
"name": "Opportunity associated to Sample Account",
"Opportunity_Tasks":
[
{ "subject": "Task associated to opportunity" }
]
}
]
}
Elkartu taulako erregistroak sortzean
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Elkartu taulako erregistroak sortzean | POST | [Atariaren URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
JSON lagina Web API bidez oharpen bat sortzeko
{
"new_attribute1": "test attribute 1",
"new_attribute2": "test attribute 2",
"new_comments": "test comments",
"new_recordurl": recordURL,
"new_feedback_Annotations":
[
{
"notetext": "Screenshot attached",
"subject": "Attachment",
"filename": file.name,
"mimetype": file.type,
"documentbody": base64str,
}
]
}
documentbody
eranskina base64 kate gisa edukiko du.
Eguneratu eta ezabatu erregistroak Web APIa erabiliz
Oinarrizko eguneratzea
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Oinarrizko eguneratzea | ADABAKIA | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000001) | { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 } |
Eguneratu jabetza bakarraren balioa
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Eguneratu jabetza bakarraren balioa | JARRI | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/izena | {"value": "Updated Sample Account Name"} |
Ezabatu edo garbitu eremu-balio bat
Eragiketa | Metodoa | URIa |
---|---|---|
Ezabatu edo garbitu eremu-balio bat | DELETE | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/deskribapena |
Oinarrizko ezabatzea
Eragiketa | Metodoa | URIa |
---|---|---|
Oinarrizko ezabatzea | DELETE | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Erlazionatu eta kendu erlazioa taulei Web API erabiliz
Gehitu bilduma balioetsitako nabigazio propietate bati erreferentzia
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Gehitu bilduma balioetsitako nabigazio propietate bati erreferentzia | BIDALI | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Kendu taula bati buruzko erreferentzia
Eragiketa | Metodoa | URIa |
---|---|---|
Kendu taula bati buruzko erreferentzia | EZABATU | [Ataria URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Kendu taula bateko erreferentzia balio bakarreko nabigazio propietate baterako
Balio bakarreko nabigazio-propietate baterako, kendu $id kontsulta-katearen parametroa.
Eragiketa | Metodoa | URIa |
---|---|---|
Kendu taula bateko erreferentzia balio bakarreko nabigazio propietate baterako | EZABATU | [Ataria URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Aldatu erreferentzia balioesteko nabigazio propietate batean
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Aldatu erreferentzia balioesteko nabigazio propietate batean | JARRI | [Ataria URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Elkartu taulak sortzean
Taula berriak harremanekin sor daitezke erabiliz sakona txertatu.
Elkartu eguneratzean taulak balio bakarreko nabigazio propietate bat erabiliz
Eguneratzean taulak lotu ditzakezu gai honetan lehenago Oinarrizko eguneratzea atalean deskribatutako mezu bera erabiliz, baina @odata.bind
oharpena erabili behar duzu balio bakarreko nabigazio-propietate baten balioa ezartzeko. Adibide honetan aukera bati lotutako kontua aldatzen da customerid_account
balio bakarreko nabigazio-propietatea erabiliz.
Elkartu eguneratzean taulak balio bakarreko nabigazio propietate bat erabiliz
Eragiketa | Metodoa | URIa | JSOn Lagina |
---|---|---|---|
Elkartu eguneratzean taulak balio bakarreko nabigazio propietate bat erabiliz | PATCH | [Ataria URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Web APIaren AJAX laginak
Lagin honek erakusten du taulako erregistroak nola sortu, eguneratu eta ezabatu JavaScript asinkronoa eta XML (AJAX) erabiliz.
Wrapper AJAX funtzioa
(function(webapi, $){
function safeAjax(ajaxOptions) {
var deferredAjax = $.Deferred();
shell.getTokenDeferred().done(function (token) {
// add headers for AJAX
if (!ajaxOptions.headers) {
$.extend(ajaxOptions, {
headers: {
"__RequestVerificationToken": token
}
});
} else {
ajaxOptions.headers["__RequestVerificationToken"] = token;
}
$.ajax(ajaxOptions)
.done(function(data, textStatus, jqXHR) {
validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
}).fail(deferredAjax.reject); //AJAX
}).fail(function () {
deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args
});
return deferredAjax.promise();
}
webapi.safeAjax = safeAjax;
})(window.webapi = window.webapi || {}, jQuery)
Sortu
webapi.safeAjax({
type: "POST",
url: "/_api/accounts",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account"
}),
success: function (res, status, xhr) {
//print id of newly created table record
console.log("entityID: "+ xhr.getResponseHeader("entityid"))
}
});
Update
webapi.safeAjax({
type: "PATCH",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account - Updated"
}),
success: function (res) {
console.log(res);
}
});
Ezabatu
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Erlazionatu
Hurrengo adibidean lehendik dagoen kontaktu bat lehendik dagoen kontu baten kontaktu nagusi gisa esleituko da.
var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)";
webapi.safeAjax({
type: "PATCH",
contentType: "application/json",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
data: JSON.stringify(record),
success: function (data, textStatus, xhr) {
console.log("Record updated");
}
});