استخدام عمليات الكتابة التحديث والحذف باستخدام واجهة API الويب للمداخل

يمكنك تنفيذ عمليات API للويب المتوفرة في البوابات. تتكون عمليات واجهة API الويب من طلبات واستجابات HTTP. توفر هذه المقالة عينة من عمليات القراءة والتحديث والحذف والطرق وURI ونموذج JSON الذي يمكنك استخدامه في طلبات HTTP.

هام

  • يجب أن يكون إصدار المدخل 9.3.3.x أو إصدار أحدث حتى تعمل هذه الميزة.

المتطلبات

  • تمكين الجدول والحقل لعمليات واجهة API الويب. مزيد من المعلومات: إعدادات الموقع لواجهة API‎ الويب

  • تنتقل واجهة API‎ الويب للمداخل إلى سجلات الجدول وتتبع أذونات الجدول الممنوحة للمستخدمين من خلال أدوار الويب المقترنة. تأكد من تكوين أذونات الجدول الصحيحة. مزيد من المعلومات: إنشاء أدوار الويب

إنشاء سجل في جدول

إنشاء أساسي

العملية الطريقة URI عينة JSON
إنشاء أساسي نشر [Portal URI]/_api/accounts {"الاسم":"عينة حساب"}

على سبيل المثال، سيؤدي نص الطلب التالي الذي تم نشره في مجموعة جداول الحساب إلى إنشاء مجموعة من أربعة جداول جديدة — بما في ذلك الحساب — في سياق إنشاء الجدول.

  • يتم إنشاء جهة اتصال لأنها محددة كخاصية لخاصية تنقل أحادية القيمة primarycontactid.
  • يتم إنشاء فرصة بسبب تعريفها ككائن داخل صفيف تم تعيينه إلى قيمة خاصية تنقل ذات قيم خاصة بمجموعة opportunity_customer_accounts.
  • يتم إنشاء مهمة بسبب تعريفها ككائن داخل صفيف تم تعيينه إلى قيمة خاصية تنقل ذات قيم خاصة بمجموعة 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" }
      ]
  }
 ]
}

إقران سجلات الجدول عند الإنشاء

العملية الطريقة URI عينة JSON
إقران سجلات الجدول عند الإنشاء نشر [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

عينة JSON لإنشاء تعليق عبر واجهة برمجة التطبيقات للويب

{
    "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 سيحتوي على المرفق كسلسلة base64.

تحديث السجلات وحذفها باستخدام واجهة API للويب‬

تحديث أساسي

العملية الطريقة URI عينة JSON
تحديث أساسي 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 }

تحديث قيمة خاصية فردية

العملية الطريقة URI عينة JSON
تحديث قيمة خاصية فردية PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

حذف قيمة خاصية فردية

العملية الطريقة URI
حذف قيمة خاصية فردية المفتاح DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

الحذف الأساسي

العملية الطريقة URI
الحذف الأساسي المفتاح DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

إقران الجداول وإلغاء إقرانها باستخدام واجهة API للويب

إضافة مرجع إلى خاصية تنقل ذات قيمة المجموعة

العملية الطريقة URI عينة JSON
إضافة مرجع إلى خاصية تنقل ذات قيمة المجموعة نشر [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

إزالة مرجع إلى جدول

العملية الطريقة URI
إزالة مرجع إلى جدول المفتاح DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

إزالة مرجع إلى جدول لخاصية تنقل أحادية القيمة

بالنسبة لخاصية تنقل أحادية القيمة، أزل معلمة سلسلة الاستعلام $id.

العملية الطريقة URI
إزالة مرجع إلى جدول لخاصية تنقل أحادية القيمة المفتاح DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

تغيير المرجع في خاصية تنقل أحادية القيمة

العملية الطريقة URI عينة JSON
تغيير المرجع في خاصية تنقل أحادية القيمة PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

إقران الجداول عند الإنشاء

يمكن إنشاء جداول جديدة مع العلاقات باستخدام الإدراج العميق.

إقران الجداول عند التحديث باستخدام خاصية تنقل أحادية القيمة

يمكنك إقران الجداول عند التحديث باستخدام نفس الرسالة الموضحة في التحديث الأساسي، سابقًا في هذا الموضوع، ولكن يجب عليك استخدام التعليق التوضيحي @odata.bind لتعيين قيمة خاصية تنقل أحادية القيمة. يغير المثال التالي الحساب المقترن بفرصة باستخدام خاصية التنقل ذات قيمة فردية customerid_account.

إقران الجداول عند التحديث باستخدام خاصية تنقل أحادية القيمة

العملية الطريقة URI عينة JSON
إقران الجداول عند التحديث باستخدام خاصية تنقل أحادية القيمة PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

عينات AJAX لواجهة API للويب

توضح هذه العينة كيفية إنشاء سجلات الجدول وتحديثها وحذفها باستخدام JavaScript غير المتزامن وXML (AJAX).

وظيفة Wrapper 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)

‏إنشاء

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

‏‏تحديث

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

حذف

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

الخطوة التالية

برنامج تعليمي: استخدام واجهة API الويب للمدخل

(راجع أيضاً )

نظرة عامة على واجهة برمجة تطبيقات (API) الويب للمداخل
عمليات القراءة في المداخل باستخدام واجهة API الويب

ملاحظة

هل يمكنك إخبارنا عن تفضيلات لغة التوثيق الخاصة بك؟ شارك في استطلاع قصير. (يرجى ملاحظة أن هذا الاستطلاع باللغة الإنجليزية)

سيستغرق الاستطلاع حوالي سبع دقائق. لا يتم جمع أي بيانات شخصية (بيان الخصوصية).