Brug portalerne Web-API - skrive, opdatere og slette handlinger

Bemærk

Fra 12. oktober 2022 bliver Power Apps-portaler til Power Pages. Flere oplysninger: Microsoft Power Pages er nu generelt tilgængelig (blog)
Vi overfører og fletter snart dokumentationen til Power Apps-portalerne med Power Pages-dokumentationen.

Du kan udføre tilgængelige web-API-handlinger i portaler. Web-API-handlinger består af HTTP-anmodninger og -svar. Denne artikel indeholder eksempler på skrive-, opdatere- og slettehandlinger, metoder, URI'er og det JSON-eksempel, du kan bruge i HTTP-anmodninger.

Vigtigt

  • Din portalversion skal være 9.3.3.x eller nyere, for at denne funktion kan fungere.

Forudsætninger

  • Aktiver tabel og felt for web-API-handlinger. Flere oplysninger: Indstillinger for websted for web-API'en

  • Portalerne Web API giver adgang til tabelposter og følger de tabeltilladelser, der gives til brugere via de tilknyttede webroller. Sørg for at konfigurere de rette tabeltilladelser. Flere oplysninger: Oprette webroller

Oprette en post i en tabel

Bemærk

Når du refererer til Dataverse-tabeller ved hjælp af portal-Web-API'en, skal du f.eks. bruge EntitySetName til at få adgang til account-tabellen. Kodesyntaksen bruger EntitySetName accounts.

Grundlæggende oprettelse

Operation Metode URI JSON-eksempel
Grundlæggende oprettelse POST [Portal URI]/_api/accounts {"navn":"Eksempelfirma"}

Eksempel på JSON til oprettelse af relaterede tabelposter i én handling

Som et eksempel opretter følgende brødtekst, der sendes til tabellen Firma, i alt fire nye tabeller – herunder kontoen – i forbindelse med oprettelse af kontoen.

  • Der oprettes en kontakt, fordi den er defineret som en objektegenskab for navigationsegenskaben med en enkelt værdi primarycontactid.
  • En salgsmulighed oprettes, fordi den er defineret som et objekt i en matrix, der er angivet til værdien for en navigationsegenskab med samlingsværdien opportunity_customer_accounts.
  • En opgave oprettes, fordi den er defineret som et objekt i en matrix, der er angivet til værdien for en navigationsegenskab med samlingsværdien 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" }
      ]
  }
 ]
}

Tilknytte tabelposter ved oprettelse

Operation Method URI JSON-eksempel
Tilknytte tabelposter ved oprettelse POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Eksempel på JSON til oprettelse af en anmærkning via web-API'en

{
    "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 indeholder den vedhæftede fil som en base64-streng.

Opdatere og slette poster ved hjælp af web-API'en

Grundlæggende opdatering

Handling Metode URI JSON-eksempel
Grundlæggende opdatering 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 }

Opdater en enkelt egenskabsværdi

Handling Metode URI JSON-eksempel
Opdater en enkelt egenskabsværdi PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Slette eller rydde en feltværdi

Operation Method URI
Slette eller rydde en feltværdi DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Grundlæggende sletning

Handling Metode URI
Grundlæggende sletning DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Tilknytte og fjerne tilknytningen af tabeller ved hjælp af web-API'en

Føj en reference til en navigationsegenskab med gruppeværdi

Handling Metode URI JSON-eksempel
Føj en reference til en navigationsegenskab med gruppeværdi POST [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Fjerne en reference til en tabel

Handling Metode URI
Fjerne en reference til en tabel DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Fjerne en reference til en tabel for en navigationsegenskab med en enkelt værdi

Fjern forespørgselsstrengparameteren $id for en navigationsegenskab med enkeltværdi.

Handling Metode URI
Fjerne en reference til en tabel for en navigationsegenskab med en enkelt værdi DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Skift referencen i navigationsegenskab med enkeltværdi

Handling Metode URI JSON-eksempel
Skift referencen i navigationsegenskab med enkeltværdi PUT (personer, der bruger tv) [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Tilknytte tabeller ved oprettelse

Du kan oprette nye tabeller med relationer ved hjælp af et dybt indlæg.

Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi

Du kan tilknytte tabeller ved opdatering ved hjælp af den samme meddelelse, der beskrives i Grundlæggende opdatering tidligere i denne emne, men du skal bruge @odata.bind-anmærkningen til at angive værdien for en navigationsegenskab med en enkelt værdi. I følgende eksempel ændres det firma, der er knyttet til en salgsmulighed, ved hjælp af customerid_account-navigationsegenskaben med en enkelt værdi.

Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi

Handling Metode URI JSON-eksempel
Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi 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-eksempler

I dette eksempel vises, hvordan du kan oprette, opdatere og slette tabelposter ved hjælp af AJAX (Asynchronous JavaScript og XML).

AJAX-ombryderfunktion

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

Opret

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

Næste trin

Selvstudium: Bruge Web API-portal

Se også

Oversigt over Web-API til portaler
Læsehandlinger på portaler ved hjælp af web-API

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).