تحسينات على واجهات برمجة التطبيقات VTAP JavaScript

يسعدنا أن نعلن عن تحسينات كبيرة في واجهات برمجة تطبيقات JavaScript الخاصة بـ VTAP، والتي تم تصميمها لتمكين المطورين والشركاء الذين يعملون مع Vtiger CRM.

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

التحسين 1: دعم الحقول الإضافية في واجهة برمجة تطبيقات السجلات ذات الصلة

لقد قمنا بتوسيع واجهة برمجة التطبيقات الخاصة بالسجلات ذات الصلة بـ VTAP لتشمل دعمًا لـ الحقول الإضافية المعلمة، مما يتيح لك استرداد حقول إضافية بخلاف الحقول الافتراضية المتوفرة. يوفر هذا التحسين مرونة أكبر عند العمل مع السجلات ذات الصلة، مما يسمح بتفاعلات أكثر ثراءً للبيانات.

VTAP.Detail.RelatedRecords

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

مثال لحالة الاستخدام: افترض أنك تعمل مع وحدة جهات الاتصال وتريد استرداد سجلات الحالة ذات الصلة التي تتضمن حقولاً مثل com.casechannel و slastatus، والتي ليست جزءًا من الاستجابة الافتراضية. يمكنك الآن بسهولة تضمين هذه الحقول في طلب واجهة برمجة التطبيقات (API) الخاص بك:


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['casechannel', 'slastatus'] })

    .then((case_records) => {

        // Process the retrieved case records with extra fields

    });


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['casechannel', 'slastatus'] })

    .then((case_records) => {

        // Process the retrieved case records with extra fields

    });

 

التحسين 2: دعم عمود التسمية في واجهة برمجة تطبيقات السجلات ذات الصلة

بالإضافة إلى التحسينات المذكورة أعلاه، أضفنا أيضًا دعمًا لعمود التسمية في واجهة برمجة التطبيقات الخاصة بالسجلات ذات الصلة بـ VTAP. يسمح لك هذا التحسين بتضمين اسم السجل (التسمية) في استجابة واجهة برمجة التطبيقات (API)، مما يسهل التعرف على السجلات ذات الصلة والعمل معها.

VTAP. التفاصيل. سجل

في السابق، لم تكن واجهة برمجة التطبيقات المرتبطة بالسجلات تدعم تضمين عمود التسمية الذي يحتوي على اسم السجل. الآن، باستخدام المعلمة extrafields، يمكنك طلب هذه التسمية في استدعاءات API الخاصة بك.

مثال على حالة الاستخدام: عند جلب سجلات الحالة ذات الصلة، قد ترغب في تضمين اسم السجل لسهولة التعرف عليه. ما عليك سوى تمرير التسمية كحقل إضافي:

 

التحسين 2: دعم عمود التسمية في واجهة برمجة تطبيقات السجلات ذات الصلة

بالإضافة إلى التحسينات المذكورة أعلاه، أضفنا أيضًا دعمًا لعمود التسمية في واجهة برمجة التطبيقات الخاصة بالسجلات ذات الصلة بـ VTAP. يسمح لك هذا التحسين بتضمين اسم السجل (التسمية) في استجابة واجهة برمجة التطبيقات (API)، مما يسهل التعرف على السجلات ذات الصلة والعمل معها.

VTAP. التفاصيل. سجل

في السابق، لم تكن واجهة برمجة التطبيقات المرتبطة بالسجلات تدعم تضمين عمود التسمية الذي يحتوي على اسم السجل. الآن، باستخدام المعلمة extrafields، يمكنك طلب هذه التسمية في استدعاءات API الخاصة بك.

مثال على حالة الاستخدام: عند جلب سجلات الحالة ذات الصلة، قد ترغب في تضمين اسم السجل لسهولة التعرف عليه. ما عليك سوى تمرير التسمية كحقل إضافي:


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['label'] })

    .then((case_records) => {

        // The response now includes the label (name) of each case

    });


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['label'] })

    .then((case_records) => {

        // The response now includes the label (name) of each case

    });

 

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

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

 

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

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

 
 
 

حالة استخدام العملاء VTAP

 
 

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

معالجة محسنة للأحداث في وحدة الأحداث

تتضمن VTAP Event API الآن القدرة على التحكم في رؤية كتلة المدعوين داخل وحدة الأحداث. يسمح هذا التحسين بالتحكم الدقيق في واجهة المستخدم، بما يتناسب مع الاحتياجات المحددة لتطبيقك.

  • VTAP.Event.Register: تتيح لك هذه الوظيفة تسجيل الأحداث من جانب العميل وتلقي ردود الاتصال عند حدوث هذه الأحداث في واجهة المستخدم. تتوفر قائمة شاملة بالأحداث المدعومة هنا.
  • VTAP.Event.Trigger: تفرض هذه الوظيفة تنفيذ الأحداث التي توفرها Vtiger UI. لقد قدمنا ​​حدثين جديدين لإظهار وإخفاء كتلة المدعوين في وحدة الأحداث:
  • EVENT_SHOW_INVITEES: يؤدي إلى تشغيل عرض كتلة المدعوين.
  • EVENT_HIDE_INVITEES: لإخفاء كتلة المدعوين.

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

قم بإنشاء برنامج نصي VTAP لوحدة الأحداث باسم المدعوين وانسخ الوظيفة أدناه لإخفاء كتلة المدعوين لنوع النشاط بخلاف الاجتماع والمكالمات:

 

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

معالجة محسنة للأحداث في وحدة الأحداث

تتضمن VTAP Event API الآن القدرة على التحكم في رؤية كتلة المدعوين داخل وحدة الأحداث. يسمح هذا التحسين بالتحكم الدقيق في واجهة المستخدم، بما يتناسب مع الاحتياجات المحددة لتطبيقك.

  • VTAP.Event.Register: تتيح لك هذه الوظيفة تسجيل الأحداث من جانب العميل وتلقي ردود الاتصال عند حدوث هذه الأحداث في واجهة المستخدم. تتوفر قائمة شاملة بالأحداث المدعومة هنا.
  • VTAP.Event.Trigger: تفرض هذه الوظيفة تنفيذ الأحداث التي توفرها Vtiger UI. لقد قدمنا ​​حدثين جديدين لإظهار وإخفاء كتلة المدعوين في وحدة الأحداث:
  • EVENT_SHOW_INVITEES: يؤدي إلى تشغيل عرض كتلة المدعوين.
  • EVENT_HIDE_INVITEES: لإخفاء كتلة المدعوين.

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

قم بإنشاء برنامج نصي VTAP لوحدة الأحداث باسم المدعوين وانسخ الوظيفة أدناه لإخفاء كتلة المدعوين لنوع النشاط بخلاف الاجتماع والمكالمات:


  

var Events_Component_Invitess = VTAP.Component.Core.extend({

    mounted() {

        VTAP.Event.Register("CREATE_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

        VTAP.Event.Register("EDIT_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

    },

    methods : {

        observeEventsFormActivityType(data) {

            if (data.module == "Events") {

                setTimeout(() => {

                    var element = jQuery('select[name="activitytype"]');

                    if (element.length) {

                        this.handleEventsFormActivityType(element.get(0).value);

                        element.on('change', () => { this.handleEventsFormActivityType(element.get(0).value); }); /* changes */

                    } else {

                        if(data && data.record) {

                            VTAP.Api.Get('records', {

                                'module': 'Events',

                                'id': data.record

                            }, (error, response) => {

                                this.handleEventsFormActivityType(response.activitytype);

                            });

                        }

                    }

                }, 500);

            }

        },

        handleEventsFormActivityType(activityType) {

            if (activityType == "Call" || activityType == "Meeting") {

                VTAP.Event.Trigger("EVENT_SHOW_INVITEES");

            } else {

                VTAP.Event.Trigger("EVENT_HIDE_INVITEES");

            }

        }

    }

});


  

var Events_Component_Invitess = VTAP.Component.Core.extend({

    mounted() {

        VTAP.Event.Register("CREATE_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

        VTAP.Event.Register("EDIT_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

    },

    methods : {

        observeEventsFormActivityType(data) {

            if (data.module == "Events") {

                setTimeout(() => {

                    var element = jQuery('select[name="activitytype"]');

                    if (element.length) {

                        this.handleEventsFormActivityType(element.get(0).value);

                        element.on('change', () => { this.handleEventsFormActivityType(element.get(0).value); }); /* changes */

                    } else {

                        if(data && data.record) {

                            VTAP.Api.Get('records', {

                                'module': 'Events',

                                'id': data.record

                            }, (error, response) => {

                                this.handleEventsFormActivityType(response.activitytype);

                            });

                        }

                    }

                }, 500);

            }

        },

        handleEventsFormActivityType(activityType) {

            if (activityType == "Call" || activityType == "Meeting") {

                VTAP.Event.Trigger("EVENT_SHOW_INVITEES");

            } else {

                VTAP.Event.Trigger("EVENT_HIDE_INVITEES");

            }

        }

    }

});

 
 

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