Kongsi melalui


Gunakan operasi tulis, kemas kini dan padam API Web portal

Anda boleh melakukan Operasi API Web tersedia dalam portal. Operasi API Web terdiri daripada permintaan dan respons HTTP. Artikel ini menyediakan operasi tulis, kemas kini dan padam sampel, kaedah, URI dan JSON sampel yang boleh anda gunakan dalam permintaan HTTP.

Penting

  • Versi portal anda mesti 9.3.3.x atau kemudian untuk ciri ini berfungsi.

Prasyarat

  • Dayakan jadual dan medan untuk operasi API Web. Maklumat lanjut, Tetapan tapak untuk API Web

  • API Web portal mengakses jadual rekod mengikut keizinan jadual yang diberikan kepada pengguna melalui yang berkaitan peranan web. Pastikan anda mengkonfigurasi keizinan jadual yang betul. Maklumat lanjut: Cipta peranan web

Cipta rekod dalam jadual

Nota

Apabila merujuk kepada jadual Dataverse menggunakan API Web portal, anda perlu menggunakan EntitySetName, sebagai contoh, untuk mengakses jadual akaun, sintaks kod akan menggunakan EntitySetName akaun.

Cipta asas

Operasi Kaedah URI Sampel JSON
Cipta asas SIARAN [Portal URI]/_api/accounts {"nama":"Akaun Sampel"}

Sebagai contoh, isi permintaan yang berikut disiarkan kepada set jadual Akaun akan mencipta sejumlah empat jadual baharu—termasuk akaun—dalam konteks mencipta akaun.

  • Kenalan dicipta kerana ia ditakrifkan sebagai sifat objek sifat navigasi bernilai tunggal primarycontactid.
  • Peluang dicipta kerana ia ditakrifkan sebagai objek dalam tatasusunan yang ditetapkan kepada nilai sifat navigasi bernilai koleksi opportunity_customer_accounts.
  • Tugas dicipta kerana ia ditakrifkan sebagai objek dalam tatasusunan yang ditetapkan kepada nilai sifat navigasi bernilai koleksi Opportunity_Tasks.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Kaitkan rekod jadual sewaktu dicipta

Operasi Kaedah URI Sampel JSON
Kaitkan rekod jadual sewaktu dicipta POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Sampel JSON untuk mencipta anotasi melalui API Web

{
    "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 akan mengandungi lampiran sebagai rentetan base64.

Kemas kini dan padamkan rekod dengan menggunakan API Web

Kemas kini asas

Operasi Kaedah URI Sampel JSON
Kemas kini asas TAMPAL [Portal 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 }

Kemas kini nila sifat tunggal

Operasi Kaedah URI Sampel JSON
Kemas kini nila sifat tunggal LETAKKAN [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Padamkan atau kosongkan nilai medan

Operasi Kaedah URI
Padamkan atau kosongkan nilai medan DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Padam asas

Operasi Kaedah URI
Padam asas PADAM [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Kemas kini dan menyahkaitkan jadual dengan menggunakan API Web

Tambahkan rujukan pada sifat navigasi bernilai koleksi

Operasi Kaedah URI Sampel JSON
Tambahkan rujukan pada sifat navigasi bernilai koleksi SIARAN [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Alih keluar rujukan kepada jadual

Operasi Kaedah URI
Alih keluar rujukan kepada jadual DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Alih keluar rujukan kepada jadual untuk sifat navigasi bernilai tunggal

Untuk sifat navigasi bernilai tunggal, alih keluar parameter rentetan pertanyaan $id.

Operasi Kaedah URI
Alih keluar rujukan kepada jadual untuk sifat navigasi bernilai tunggal DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Ubah rujukan pada sifat navigasi bernilai tunggal

Operasi Kaedah URI Sampel JSON
Ubah rujukan pada sifat navigasi bernilai tunggal LETAKKAN [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Kaitkan jadual sewaktu dicipta

Jadual baharu boleh dicipta dengan perhubungan dengan menggunakan sisipan dalam.

Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal

Anda boleh mengaitkan jadual pada kemas kini dengan menggunakan mesej yang sama yang diterangkan dalam Kemas kini asas sebelum ini dalam topik ini, tetapi anda mesti menggunakan anotasi @odata.bind untuk menetapkan nilai sifat navigasi bernilai tunggal. Contoh berikut mengubah akaun yang dikaitkan dengan peluang menggunakan sifat navigasi bernilai tunggal customerid_account.

Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal

Operasi Kaedah URI Sampel JSON
Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Sampel AJAX API Web

Sampel ini menunjukkan cara mencipta, mengemas kini dan memadam rekod jadual dengan menggunakan tidak segerak JavaScript dan XML (AJAX).

Fungsi AJAX Pembalut

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

Cipta

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

Kemas kini

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

Kaitkan

Contoh berikut akan menugaskan kenalan sedia ada sebagai kenalan utama untuk akaun sedia ada.

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

Langkah seterusnya

Cara: Gunakan API Web portal

Lihat juga