Verwenden Sie Portale-Web-API Schreib-, Aktualisierungs- und Löschvorgänge

Sie können verfügbare Web-API-Vorgänge in Portalen durchführen. Web-API-Vorgänge bestehen aus HTTP-Anforderungen und -Antworten. In diesem Artikel finden Sie Beispiele für Schreib-, Aktualisierungs- und Löschvorgänge, Methoden, URI und Beispiel-JSON, die Sie in den HTTP-Anforderungen verwenden können.

Wichtig

  • Ihre Portalversion muss 9.3.3.x oder höher sein, damit diese Funktion funktioniert.

Anforderungen

  • Aktivieren Sie Tabelle und Feld für Web-API-Vorgänge. Weitere Informationen: Site-Einstellungen für die Web-API

  • Das Portale-Web-API greift auf Tabellendatensätze zu und folgt den Tabellenberechtigungen, die Benutzern über die zugehörigen Webrollen erteilt werden. Stellen Sie sicher, dass Sie die richtigen Berechtigungen für Tabellen konfigurieren. Weitere Informationen: Webrollen erstellen

Erstellen eines Datensatzes in einer Tabelle

Anmerkung

Bei Bezugnahme auf Dataverse-Tabellen über die Web-API des Portals müssen Sie beispielsweise EntitySetName verwenden, um auf die Konto-Tabelle zuzugreifen. Der Codesyntax verwendet EntitySetName von Konten.

Grundlegende Erstellung

Operation Methode URI JSON-Beispiel
Grundlegende Erstellung POST [Portal URI]/_api/accounts {"name":"Sample Account"}

Der folgende Anfragetext, der für die Tabelle Konto festgelegt wurde, erstellt zum Beispiel insgesamt vier neue Tabellen - einschließlich des Kontos - im Rahmen der Erstellung des Kontos.

  • Ein Kontakt wird erstellt, weil er als eine Objekteigenschaft der einwertigen Navigationseigenschaft primarycontactid definiert ist.
  • Eine Verkaufschance wird erstellt, weil sie als Objekt innerhalb eines Arrays definiert ist, das auf den Wert einer Navigationseigenschaft mit dem Wert opportunity_customer_accounts festgelegt ist.
  • Eine Aufgabe wird erstellt, weil sie als Objekt in einem Array definiert ist, das auf den Wert der Navigationseigenschaft Opportunity_Tasks festgelegt ist, die einen Sammlungswert hat.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Ordnen Sie Tabellendatensätze beim Erstellen zu

Operation Methode URI JSON-Beispiel
Ordnen Sie Tabellendatensätze beim Erstellen zu POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Beispiel für JSON zum Erstellen einer Anmerkung über die Web-API

{
    "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 enthält den Anhang als Base64-Zeichenfolge.

Aktualisieren und löschen Sie Datensätze mithilfe der Web-API

Grundlegende Aktualisierung

Vorgang Methode URI JSON-Beispiel
Grundlegende Aktualisierung 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 }

Aktualisieren Sie einen einzelnen Eigenschaftswert

Vorgang Methode URI JSON-Beispiel
Aktualisieren Sie einen einzelnen Eigenschaftswert PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Einen Feldwert löschen oder leeren

Operation Methode URI
Einen Feldwert löschen oder leeren DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Grundlegende Löschung

Vorgang Methode URI
Grundlegende Löschung DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Tabellen zuordnen und Zuordnungen aufheben mithilfe der Web-API

Fügen Sie eine Referenz auf eine sammlungswertige Navigationseigenschaft hinzu

Vorgang Methode URI JSON-Beispiel
Fügen Sie eine Referenz auf eine sammlungswertige Navigationseigenschaft hinzu NACHRICHT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Verweis auf eine Tabelle entfernen

Vorgang Methode URI
Verweis auf eine Tabelle entfernen DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Verweis auf eine Tabelle für eine Navigationseigenschaft mit einem Wert entfernen

Für eine Navigationseigenschaft mit einem Wert entfernen Sie den Parameter $id für die Abfragezeichenfolge.

Vorgang Methode URI
Verweis auf eine Tabelle für eine Navigationseigenschaft mit einem Wert entfernen DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Ändern Sie die Referenz in einer einzelwertigen Navigationseigenschaft

Vorgang Methode URI JSON-Beispiel
Ändern Sie die Referenz in einer einzelwertigen Navigationseigenschaft PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Tabellen beim Erstellen zuordnen

Neue Tabellen können mit Beziehungen durch Verwenden von deep insert erstellt werden.

Verknüpfen von Tabellen beim Aktualisieren mithilfe einer Navigationseigenschaft mit einem Wert

Sie können Tabellen bei der Aktualisierung zuordnen, indem Sie dieselbe Nachricht verwenden, die in Basic update weiter oben in diesem Thema beschrieben wurde, aber Sie müssen die Annotation @odata.bind verwenden, um den Wert einer einwertigen Navigationseigenschaft festzulegen. Das folgende Beispiel ändert das mit einer Verkaufschance verknüpfte Konto unter Verwendung der einwertigen Navigationseigenschaft customerid_account.

Verknüpfen von Tabellen beim Aktualisieren mithilfe einer Navigationseigenschaft mit einem Wert

Vorgang Methode URI JSON-Beispiel
Verknüpfen von Tabellen beim Aktualisieren mithilfe einer Navigationseigenschaft mit einem Wert PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Web-API-AJAX-Beispiele

Dieses Beispiel zeigt, wie Tabellendatensätze mithilfe von asynchronem JavaScript und XML (AJAX) erstellt, aktualisiert und gelöscht werden.

Wrapper AJAX-Funktion

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

Erzeugen

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

Aktualisieren

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

Zuordnen

Im folgenden Beispiel wird ein vorhandener Kontakt als primärer Kontakt für ein vorhandenes Konto zugewiesen.

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

Nächster Schritt

Anleitung: Portale-Web-API verwenden

Siehe auch