Share via


Bewerkingen voor schrijven, bewerken en verwijderen met de web-API voor portals gebruiken

Notitie

Met ingang van 12 oktober 2022 wordt Power Apps-portals hernoemd tot Power Pages. Meer informatie: Microsoft Power Pages is nu algemeen beschikbaar (blog)
We zullen binnenkort de documentatie voor Power Apps-portals migreren en samenvoegen met Power Pages-documentatie.

U kunt beschikbare web-API-bewerkingen uitvoeren in portals. Web-API-bewerkingen bestaan uit HTTP-aanvragen en -reacties. In dit artikel worden voorbeelden gegeven van bewerkingen voor schrijven, bijwerken en verwijderen, methoden, URI en het voorbeeld-JSON-bestand die u in de HTTP-aanvragen kunt gebruiken.

Belangrijk

  • Uw portalversie moet 9.3.3.x of hoger zijn om deze functie te laten werken.

Vereisten

  • Schakel tabel en veld in voor web API-bewerkingen. Meer informatie: Site-instellingen voor de web-API

  • De web-API voor portals heeft toegang tot tabelrecords en volgt de tabelmachtigingen die aan gebruikers zijn gegeven via de toegewezen webrollen. Zorg ervoor dat u de juiste tabelmachtigingen configureert. Meer informatie: Webrollen maken.

Een record in een tabel maken

Notitie

Als wordt verwezen naar Dataverse-tabellen met behulp van de web-API voor portals, moet u de EntitySetName gebruiken, bijvoorbeeld om toegang te krijgen tot de account-tabel, gebruikt de codesyntaxis de EntitySetName van accounts.

Basis maken

Bewerking Methode URI JSON-voorbeeld
Basis maken POSTEN [Portal-URI]/_api/accounts {"naam":"Voorbeeldaccount"}

Voorbeeld-JSON voor het maken van gerelateerde tabelrecords in één bewerking

Met de volgende aanvraagtekst die is opgenomen in de tabelset Account, worden bijvoorbeeld in totaal vier nieuwe tabellen gemaakt, inclusief het account, in de context van het aanmaken van het account.

  • Er wordt een contactpersoon gemaakt omdat deze is gedefinieerd als een objecteigenschap van de navigatie-eigenschap met één waarde primarycontactid.
  • Er wordt een verkoopkans gemaakt omdat deze is gedefinieerd als een object binnen een matrix die is ingesteld op de waarde van een navigatie-eigenschap met collectiewaarde opportunity_customer_accounts.
  • Er wordt een taak gemaakt omdat deze is gedefinieerd als een object binnen een matrix die is ingesteld op de waarde van een navigatie-eigenschap met collectiewaarde 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" }
      ]
  }
 ]
}

Tabelrecords koppelen bij het maken

Operation Method URI JSON-voorbeeld
Tabelrecords koppelen bij het maken POST [Portal-URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Voorbeeld-JSON voor het maken van een aantekening via de 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 bevat de bijlage als een base64-tekenreeks.

Records bijwerken en verwijderen met behulp van de web-API

Basisbijwerkbewerking

Bewerking Methode URI JSON-voorbeeld
Basisbijwerkbewerking 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 }

Eén eigenschapswaarde bijwerken

Bewerking Methode URI JSON-voorbeeld
Eén eigenschapswaarde bijwerken PUT [Portal-URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Een veldwaarde verwijderen of wissen

Operation Method URI
Een veldwaarde verwijderen of wissen DELETE [Portal-URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Basisverwijderbewerking

Bewerking Methode URI
Basisverwijderbewerking DELETE [Portal-URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Tabellen koppelen en ontkoppelen met de web-API

Een verwijzing toevoegen naar een collection-valued navigatie-eigenschap

Bewerking Methode URI JSON-voorbeeld
Een verwijzing toevoegen naar een collection-valued navigatie-eigenschap Posten [Portal-URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Een verwijzing naar een tabel verwijderen

Bewerking Methode URI
Een verwijzing naar een tabel verwijderen DELETE [Portal-URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Een verwijzing naar een tabel verwijderen voor een navigatie-eigenschap met één waarde

Verwijder voor een navigatie-eigenschap met één waarde de querytekenreeksparameter $id.

Bewerking Methode URI
Een verwijzing naar een tabel verwijderen voor een navigatie-eigenschap met één waarde DELETE [Portal-URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

De verwijzing in een navigatie-eigenschap met één waarde wijzigen

Bewerking Methode URI JSON-voorbeeld
De verwijzing in een navigatie-eigenschap met één waarde wijzigen 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 koppelen bij het maken

Nieuwe tabellen kunnen worden gemaakt met relaties door diep invoegen.

Tabellen koppelen bij het bijwerken met behulp van een navigatie-eigenschap met één waarde

U kunt tabellen bij het bijwerken koppelen door hetzelfde bericht te gebruiken dat wordt beschreven in Basisupdate, eerder in dit onderwerp, maar u moet de @odata.bind-aantekening gebruiken om de waarde van een navigatie-eigenschap met één waarde in te stellen. In het volgende voorbeeld wordt het account dat aan een verkoopkans is gekoppeld, gewijzigd met behulp van de navigatie-eigenschap met één waarde customerid_account.

Tabellen koppelen bij het bijwerken met behulp van een navigatie-eigenschap met één waarde

Bewerking Methode URI JSON-voorbeeld
Tabellen koppelen bij het bijwerken met behulp van een navigatie-eigenschap met één waarde 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-voorbeelden

Dit voorbeeld laat zien hoe u tabelrecords maakt, bijwerkt en verwijdert met Asynchronous JavaScript And XML (AJAX).

Wrapper-functie van AJAX

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

Bijwerken

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

Volgende stap

Zelfstudie: Web-API voor portals gebruiken

Zie ook

Overzicht van Web-API voor portals
Portals-leesbewerkingen met behulp van de web API

Notitie

Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)

De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).