Share via


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

Hinweis

Ab 12. Oktober 2022 ist Power Apps-Portale Power Pages. Weitere Informationen: Microsoft Power Pages ist jetzt allgemein verfügbar (Blog)
Wir werden die in Kürze migrieren und die Dokumentation für Power Apps-Portale mit der Power Pages-Dokumentation zusammenführen.

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

Hinweis

Bei Bezugnahme auf Dataverse-Tabellen über die Web-API des Portals müssen Sie beispielsweiseEntitySetName 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 Method 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 Method 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)

Create

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

Nächster Schritt

Tutorial: Portale-Web-API verwenden

Siehe auch

Übersicht über Web-API für Portale
Portale Lesevorgänge über die Web-API

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).