Partekatu honen bidez:


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

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

Hurrengo urratsa

Nola: erabili Web API ataria

Ikusi ere