Megosztás a következőn keresztül:


A portálok használtata Web API írása, frissítése és törlése műveletekre

A webes API elérhető műveletei végrehajthatók a portálokon. A webes API műveletek HTTP-kérelmekből és-válaszokból állnak. A cikk a HTTP-kérelmekben használható példákat, irási, frissítési és törlési módszereket, URI-kat és minta JSON formátumokat mutat be.

Fontos

  • A portálverziónak 9.3.3.x-nek vagy újabbnak kell lennie, hogy ez a funkció működjön.

Előfeltételek

  • Tábla és mező engedélyezése a webes API-műveletekhez. További információ: A webes API webhelybeállításai

  • A portálok webes API-ja hozzáfér az táblarekordokhoz, és követi a társított webes szerepkörök segítségével a felhasználóknak adott táblaengedélyeket. Győződjön meg róla, hogy a megfelelő táblaengedélyeket konfigurálta. További információ: Webes szerepkörök létrehozása

Rekord létrehozása táblában

Feljegyzés

Amikor a portálok webes API-t használó Dataverse-táblákra hivatkozik, az EntitySetName nevet kell használnia például a fiók táblához való hozzáféréshez, a kód szintaxisa a fiókok EntitySetName fájlját fogja használni.

Alapszintű létrehozás

Operation Metódus URI JSON-minta
Alapszintű létrehozás POST [Portál URI]/_api/accounts {"name":"Sample Account"}

Például a következő, a Partner táblakészlethez közzétett kérelemtörzs összesen négy új táblát hoz létre – köztük a partner táblát is – a partner létrehozásakor.

  • A rendszer azért hoz létre kapcsolattartót, mert az az egyértékű primarycontactid navigációs primarycontactid tulajdonság objektumtulajdonságaként van definiálva.
  • A rendszer azért hoz létre lehetőséget, mert az egy olyan, tömbön belüli objektumként van definiálva, amely a gyűjtemény értékű opportunity_customer_accounts navigációs tulajdonság értékére van beállítva.
  • A rendszer azért hoz létre feladatot, mert az egy olyan, tömbön belüli objektumként van definiálva, amely a gyűjtemény értékű Opportunity_Tasks navigációs tulajdonság értékére van beállítva.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Táblarekordok társítása létrehozáskor

Operation Metódus URI JSON-minta
Táblarekordok társítása létrehozáskor POST [Portál URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Minta JSON jegyzet webes API-val történő létrehozásához

{
    "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,
            }
        ]
    }

A mellékletet a documentbody tartalmazza Base64-sztringként.

Bejegyzések frissítése és törlése a webes API-val

Alapvető frissítés

Művelet Metódus URI JSON-minta
Alapvető frissítés JAVÍTÁS [Portál 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 }

Egyetlen tulajdonságérték frissítése

Művelet Módszer URI JSON-minta
Egyetlen tulajdonságérték frissítése PUT [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Mezőérték törlése

Operation Metódus URI
Mezőérték törlése DELETE [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Alapszintű törlés

Művelet Módszer URI
Alapszintű törlés DELETE [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Táblák hozzárendelése és a hozzárendelés megszüntetése a webes API használatával

Hivatkozás hozzáadása egy gyűjtemény-értékű navigációs tulajdonsághoz

Művelet Módszer URI JSON-minta
Hivatkozás hozzáadása egy gyűjtemény-értékű navigációs tulajdonsághoz KÜLDÉS [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Táblára vonatkozó hivatkozás eltávolítása

Művelet Metódus URI
Táblára vonatkozó hivatkozás eltávolítása DELETE [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Az egyértékű navigációs tulajdonsággal rendelkező táblára vonatkozó hivatkozás eltávolítása

Egyértékű navigációs tulajdonság esetén távolítsa el a $id lekérdezésikarakterlánc-paramétert.

Művelet Metódus URI
Az egyértékű navigációs tulajdonsággal rendelkező táblára vonatkozó hivatkozás eltávolítása DELETE [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Egy egyértékű navigációs tulajdonság hivatkozásának módosítása

Művelet Módszer URI JSON-minta
Egy egyértékű navigációs tulajdonság hivatkozásának módosítása PUT [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Táblák társítása létrehozáskor

Új táblák hozhatók létre kapcsolatokkal mély beszúrás segítségével.

Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával

A frissítés során a táblák a témakör korábbi, az Alapfrissítésében részben ismertetett üzenet használatával társíthatóak, de a @odata.bind jelölés segítségével kell beállítania egy egyértékű navigációs tulajdonság értékét. A következő példában a customerid_account egyértékű navigációs tulajdonság használatával változtatjuk meg a lehetőséghez társított partnert.

Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával

Művelet Metódus URI JSON-minta
Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával PATCH [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Webes API AJAX-minták

A példa bemutatja, hogyan hozhat létre, frissíthet és törölhet táblarekordokat aszinkron JavaScript és XML (AJAX) használatával.

Burkoló AJAX-függvény

	(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)

Létrehozás

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

Delete

	webapi.safeAjax({
		type: "DELETE",
		url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
		contentType: "application/json",
		success: function (res) {
			console.log(res);
		}
  });

Társítás

Az alábbi példa egy meglévő kapcsolattartót fog elsődleges kapcsolattartóként hozzárendelni egy meglévő partnerhez.

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

Következő lépés

Útmutató: Portálok webes API-jának használata

Kapcsolódó információk