Comparteix a través de


Ús de les operacions d'escriptura, actualització i supressió a l'API web dels portals

Podeu dur a terme operacions API web disponibles als portals. Les operacions de l'API web consisteixen en sol·licituds i respostes HTTP. En aquest article s'ofereixen operacions d'escriptura, actualització i supressió, mètodes, URI i JSON d'exemple que podeu utilitzar a les sol·licituds HTTP.

Important

  • La versió del portal ha de ser 9.3.3.x o posterior per poder treballar amb aquesta característica.

Requisits previs

  • Habilitar la taula i el camp per a les operacions de l'API web. Més informació: Configuració del lloc per a l'API web

  • L'API web dels portals accedeix als registres de taula i segueix els permisos de taula atorgats als usuaris mitjançant les funcions web associades. Assegureu-vos de configurar els permisos de taula correctes. Més informació: Crear funcions web

Crear un registre en una taula

Nota

Quan feu referència a taules del Dataverse que utilitzen l'API web de portals, heu d'utilitzar EntitySetName; per exemple, per accedir a la taula compte, la sintaxi de codi utilitzarà l'EntitySetName comptes.

Creació bàsica

Operació Mètode URI Exemple de JSON
Creació bàsica Publica [Portal URI]/_api/accounts {"name":"Compte d'exemple"}

Per exemple, el cos de sol·licitud següent publicat al conjunt de taules Comptes crearà un total de quatre taules noves, incloent-hi la de comptes, en el context de la creació del compte.

  • Un contacte es crea perquè s'ha definit com una propietat d'objecte de la propietat de navegació d'un sol valor primarycontactid.
  • Una oportunitat es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa opportunity_customer_accounts.
  • Una tasca es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa 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" }
      ]
  }
 ]
}

Associar els registres de taula en crear-los

Operació Mètode URI Exemple de JSON
Associar els registres de taula en crear-los POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Exemple JSON per crear una anotació a través de l'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 contindrà el fitxer adjunt com a cadena Base64.

Actualitzar i suprimir registres mitjançant l'API web

Actualització bàsica

Operació Mètode URI Exemple de JSON
Actualització bàsica PATCH [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 }

Actualitzar el valor d'una única propietat

Operació Mètode URI Exemple de JSON
Actualitzar el valor d'una única propietat PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Suprimir o esborrar un valor de camp

Operació Mètode URI
Suprimir o esborrar un valor de camp DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Supressió bàsica

Operació Mètode URI
Supressió bàsica Supr [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Associar i anul·lar l'associació de taules amb l'API web

Afegir una referència a una propietat de navegació de valor de col·lecció

Operació Mètode URI Exemple de JSON
Afegir una referència a una propietat de navegació de valor de col·lecció Publica [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Suprimir una referència a una taula

Operació Mètode URI
Suprimir una referència a una taula DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Suprimir una referència a una taula per a una propietat de navegació d'un valor

Per a una propietat de navegació de valor únic, suprimiu el paràmetre de cadena de consulta $id.

Operació Mètode URI
Suprimir una referència a una taula per a una propietat de navegació d'un valor DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Canviar la referència d'una propietat de navegació de valor únic

Operació Mètode URI Exemple de JSON
Canviar la referència d'una propietat de navegació de valor únic PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Associar taules en crear-les

Les taules noves es poden crear amb relacions mitjançant la inserció profunda.

Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor

Podeu associar les taules en actualitzar-les utilitzant el mateix missatge que es descriu a l'actualització bàsica, més aviat en aquest tema, però heu d'utilitzar l'anotació @odata.bind per definir el valor d'una propietat de navegació d'un sol valor. L'exemple següent canvia el compte associat a una oportunitat mitjançant la propietat de navegació d'un sol valor customerid_account.

Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor

Operació Mètode URI Exemple de JSON
Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Exemples d'AJAX de l'API web

Aquest exemple mostra com es creen, actualitzen i suprimeixen registres de taula mitjançant JavaScript asíncron i XML (AJAX).

Funció AJAX contenidora

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

Creació

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

Associa

L'exemple següent assignarà un contacte existent com a contacte principal d'un compte existent.

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

Pas següent

Tutorial: Utilitzar l'API web del portal

Consulteu també