واجهة برمجة تطبيقات VTAP سهلة الاستخدام: إدارة السجلات باستخدام وظائف إلغاء الارتباط والحذف والتصفية

مع منصة تطبيقات Vtiger (VTAP)، يُمكن للمطورين الآن استخدام واجهة مُبسّطة وقابلة للبرمجة لإجراء عمليات التسجيل عبر واجهة برمجة تطبيقات موحدة. تُوضّح هذه المقالة كيفية فصل السجلات ذات الصلة بكفاءة، وحذف الإدخالات المُستهدفة، وتطبيق مُرشّحات مُتقدّمة، مما يُحسّن التحكّم والكفاءة والموثوقية في منطق تطبيقك.

دعونا نتعلم المزيد عن ما ورد أعلاه.

ملخص المشكلة

عند إدارة السجلات ذات الصلة عبر الوحدات النمطية، يواجه المستخدمون غالبًا عقبات تشغيلية مثل:

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

قد يؤدي تنفيذ هذه المهام يدويًا أو باستخدام إرشادات API غير واضحة إلى انخفاض الكفاءة وزيادة خطر فقدان البيانات وعدم الاتساق في تنفيذ المنطق.

الهدف

  • توضيح كيفية إلغاء ربط السجلات ذات الصلة من وحدة النمطية الأصلية باستخدام VTAP برمجيًا.
  • إظهار كيفية حذف سجل من الوحدة النمطية بشكل آمن.
  • توفير طريقة منظمة لتصفية السجلات استنادًا إلى شروط متعددة باستخدام معلمة q.
  • شارك أفضل الممارسات لاسترداد معرفات العلاقات بشكل ديناميكي عبر واجهة برمجة التطبيقات لتحقيق المرونة وإمكانية الصيانة.

تفاصيل التنفيذ

إلغاء ربط سجل ذي صلة:

لإزالة العلاقة بين سجلين (على سبيل المثال، إلغاء ربط فاتورة بإمكانية)، استخدم المقطع التالي:


  

VTAP.Api.Delete('records/relationrecords', {

    module: 'Potentials',

    related_module: 'Invoice',

    id: ‘WXYZ’,

    related_record_id: ‘ABCD’,

    relation_id: ‘1234’

}, (error, response) => {

    console.log(response);

});


  

VTAP.Api.Delete('records/relationrecords', {

    module: 'Potentials',

    related_module: 'Invoice',

    id: ‘WXYZ’,

    related_record_id: ‘ABCD’,

    relation_id: ‘1234’

}, (error, response) => {

    console.log(response);

});

سيؤدي هذا فقط إلى إلغاء ربط السجل. ستبقى الفاتورة الأصلية والمحتملة كما هي.

كيفية استرجاع relationship_id بشكل ديناميكي:


  

VTAP.Detail.Relations('Potentials').then((relations) => {

    console.log(relations);

});


  

VTAP.Detail.Relations('Potentials').then((relations) => {

    console.log(relations);

});

يؤدي هذا إلى إرجاع جميع البيانات الوصفية ذات الصلة لوحدة الإمكانات، بما في ذلك معرفات العلاقات والعلامات.

حذف سجل:


  

To delete a record (for example, a Subscription), use:

VTAP.Api.Delete('records', {

    module: 'Subscription',

    id: '596'

}, (error, response) => {

    console.log(response);

});


  

To delete a record (for example, a Subscription), use:

VTAP.Api.Delete('records', {

    module: 'Subscription',

    id: '596'

}, (error, response) => {

    console.log(response);

});

سيؤدي هذا إلى إزالة سجل الاشتراك الذي يحمل المعرف 596 بشكل دائم. استخدم هذا فقط عندما لا تكون هناك حاجة إلى السجل بعد الآن.

تصفية السجلات باستخدام معلمة q:

لاسترداد السجلات من وحدة المدفوعات استنادًا إلى شروط تصفية متعددة:


  

VTAP.Api.Get("records", {

    module: "Payments",

    q: [[

            ["retrycounter", "equal", ["2"]],

            ["createdtime", "greater", ["2025-05-27"]],

            ["cf_payments_internetdisabledbyvtiger", "equal", ["0"]],

            ["paymentsstatus", "n", ["Received"]]

       ]]

}, (error, response) => {

    if (error) {

        console.error("Error:", error);

    } else {

        console.log(response);

    }

});


  

VTAP.Api.Get("records", {

    module: "Payments",

    q: [[

            ["retrycounter", "equal", ["2"]],

            ["createdtime", "greater", ["2025-05-27"]],

            ["cf_payments_internetdisabledbyvtiger", "equal", ["0"]],

            ["paymentsstatus", "n", ["Received"]]

       ]]

}, (error, response) => {

    if (error) {

        console.error("Error:", error);

    } else {

        console.log(response);

    }

});

الفوائد

  • إدارة السجلات الفعالة:يقوم بأتمتة عمليات إلغاء الارتباط والحذف، مما يوفر الوقت ويقلل من الأخطاء البشرية.
  • تحكم أفضل:يتمتع المطورون بالتحكم الدقيق في السجلات المتأثرة، مما يؤدي إلى تحسين سلامة البيانات.
  • تصفية متقدمة:تتيح معلمة q إجراء استعلامات معقدة ومتعددة الشروط، مما يقلل من استدعاءات واجهة برمجة التطبيقات غير الضرورية.
  • مناسب للمطورين:يدعم بشكل كامل قواعد لغة JavaScript غير المتزامنة (async/await)، مما يجعل التكامل سلسًا في بيئات VTAP.

نعتقد أن هذه الأمثلة ستحسن تجربتك مع Vtiger CRM. نريد أن نضمن أن المطورين ومستخدمي CRM يمكنهم تبادل المعلومات والمعرفة بشكل متبادل لتعزيز وظائف CRM. 

ترقبوا المزيد. برمجة سعيدة!

 
 

قم بالتسجيل لتلقي آخر التحديثات!