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"} |
Beispiel-JSON zum Erstellen verwandter Tabellendatensätze in einem Vorgang
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