Aracılığıyla paylaş


Portallar Web API kullanarak yazma, güncelleme ve silme işlemleri

Not

12 Ekim 2022 tarihi itibarıyla Power Apps portalları, Power Pages olarak adlandırılmıştır. Daha fazla bilgi: Microsoft Power Pages genel kullanıma sunuldu (blog)
Yakında Power Apps portalları belgelerini taşıyıp Power Pages belgeleri ile birleştireceğiz.

Portallarda kullanılabilir Web API'si işlemleri gerçekleştirebilirsiniz. Web API işlemleri HTTP isteklerinden ve yanıtlardan oluşur. Bu makale, HTTP isteklerinde kullanabileceğiniz örnek okuma, yazma ve silme işlemleri, yöntemler, URI ve örnek JSON sağlar.

Önemli

  • Bu özelliğin çalışması için portal sürümünüzün 9.3.3.x veya üstü olması gerekir.

Önkoşullar

  • Web API işlemleri için tabloyu ve alanı etkinleştir. Daha fazla bilgi: Web API için site ayarları

  • Portal Web API tablo kayıtlarına erişir ve ilgili web rolleri aracılığıyla kullanıcılara verilen tablo izinlerini izler. Doğru tablo izinlerini yapılandırdığınızdan emin olun. Daha fazla bilgi: Web rolleri oluşturma

Tabloda kayıt oluşturma

Not

Portal Web API'sini kullanarak Dataverse tablolarına başvuruda bulunurken EntitySetName kullanmanız gerekir (ör. firma tablosuna erişmek için). Bu durumda, kod sözdizimi firmalar için EntitySetName kullanır.

Temel oluşturma

İşlem Yöntem URI JSON Örneği
Temel oluşturma İLETİ [Portal URI]/_api/accounts {"name":"Örnek hesap"}

Tek işlemde ilgili tablo kayıtları oluşturmak için JSON örneği

Örneğin, Firma tablosu kümesine gönderilen aşağıdaki istek gövdesi, firma oluşturma bağlamında hesap da dahil olmak üzere toplam dört yeni tablo oluşturur.

  • Tek değerli primarycontactid gezinti özelliğinin nesne özelliği olarak tanımlandığından, ilgili kişi oluşturulur.
  • Koleksiyon değerli opportunity_customer_accounts gezinme özelliğinin değerine ayarlanan bir dizi içinde bir nesne olarak belirlendiğinden bir fırsat oluşturulur.
  • Koleksiyon değerli Opportunity_Tasks gezinme özelliğinin değerine ayarlanan bir dizi içinde bir nesne olarak belirlendiğinden bir görev oluşturulur.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Oluşturma sırasında tablo kayıtlarını ilişkilendirme

Operation Method URI JSON Örneği
Oluşturma sırasında tablo kayıtlarını ilişkilendirme POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Web API'si aracılığıyla bir ek açıklama oluşturmak için JSON örneği

{
    "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 eki Base64 dizesi olarak içerecektir.

Web API kullanarak kayıtları güncelleştirme ve silme

Temel güncelleştirme

İşlem Yöntem URI JSON Örneği
Temel güncelleştirme YAMA [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 }

Tek bir özellik değerini güncelleştirme

İşlem Yöntem URI JSON Örneği
Tek bir özellik değerini güncelleştirme PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Alan değerini silme veya temizleme

Operation Yöntem URI
Alan değerini silme veya temizleme DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Temel silme

İşlem Yöntem URI
Temel silme DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Web API'si kullanarak tabloları ilişkilendirme ve ilişkisini kesme

Koleksiyon değerli gezinti özelliğine başvuru ekleme

İşlem Yöntem URI JSON Örneği
Koleksiyon değerli gezinti özelliğine başvuru ekleme Posta [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Tabloya başvuruyu kaldırma

İşlem Yöntem URI
Tabloya başvuruyu kaldırma DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Tek değerli gezinti özelliği için bir tabloya başvuruyu kaldırma

Tek değerli gezinti özelliği için, $id sorgu dizesi parametresini kaldırın.

İşlem Yöntem URI
Tek değerli gezinti özelliği için bir tabloya başvuruyu kaldırma DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Tek değerli Gezinti özelliğindeki başvuruyu değiştirme

İşlem Yöntem URI JSON Örneği
Tek değerli Gezinti özelliğindeki başvuruyu değiştirme PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Oluşturma sırasında tablo ilişkilendirme

Yeni tablolar, derin ekleme kullanılarak ilişkilerle birlikte oluşturulabilir.

Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin

Güncelleştirme yapılan tabloları, Temel güncelleştirme bölümünde daha önce anlatılan aynı iletiyi kullanarak ilişkilendirebilirsiniz ancak tek değerli gezinti özelliğinin değerini ayarlamak için @odata.bind ek açıklamasını kullanmanız gerekir. Aşağıdaki örnek, tek değerli customerid_account gezinti özelliğini kullanarak fırsatla ilişkilendirilen hesabı değiştirir.

Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin

İşlem Yöntem URI JSON Örneği
Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin 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'sı AJAX örnekleri

Bu örnekte, Zaman Uyumsuz JavaScript ve XML (AJAX) kullanarak tablo kayıtları oluşturma, güncelleştirme ve silme gösterilmiştir.

Sarmalayıcı AJAX işlevi

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

Oluştur

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

Güncelleştirin

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

Silme

    webapi.safeAjax({
        type: "DELETE",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        success: function (res) {
            console.log(res);
        }
  });

Sonraki adım

Öğretici: Portal Web API'sini kullanma

Ayrıca bkz.

Portallar Web API'sına genel bakış
Web API kullanan portal okuma işlemleri

Not

Belge dili tercihlerinizi bizimle paylaşabilir misiniz? Kısa bir ankete katılın. (lütfen bu anketin İngilizce olduğunu unutmayın)

Anket yaklaşık yedi dakika sürecektir. Kişisel veri toplanmaz (gizlilik bildirimi).