Улучшения в API JavaScript VTAP

Мы рады объявить о значительных улучшениях API-интерфейсов JavaScript VTAP, призванных расширить возможности разработчиков и партнеров, работающих с Vtiger CRM.

Эти улучшения направлены на повышение гибкости и функциональности платформы, особенно в модуле «События» и API «RelatedRecords». Ниже мы описываем ключевые обновления, которые позволят вам создавать множество динамичных и гибких CRM-решений.

Улучшение 1: поддержка дополнительных полей в API linkedRecords.

Мы расширили API VTAP linkedRecords, включив в него поддержку дополнительные поля параметр, позволяющий получить дополнительные поля помимо предусмотренных по умолчанию. Это усовершенствование обеспечивает большую гибкость при работе со связанными записями, обеспечивая более широкое взаимодействие с данными.

VTAP.Detail.RelatedRecords

Этот API извлекает связанные записи для данного модуля. По умолчанию он включает поля, для которых разрешено быстрое создание, заголовок и т. д. дополнительные поля параметр, теперь вы можете указать дополнительные поля, которые будут включены в ответ, обеспечивая более глубокое понимание связанных данных.

Пример использования: Предположим, вы работаете с модулем «Контакты» и хотите получить связанные записи обращений, которые включают такие поля, как случайканал и сластатус, которые не являются частью ответа по умолчанию. Теперь вы можете легко включить эти поля в свой запрос 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. Поддержка столбцов меток в API linkedRecords.

В дополнение к вышеупомянутым улучшениям мы также добавили поддержку столбца меток в API VTAP linkedRecords. Это улучшение позволяет включать имя записи (метку) в ответ API, что упрощает идентификацию связанных записей и работу с ними.

ВТАП.Деталь.Запись

Ранее API AssociateRecords не поддерживал включение столбца метки, содержащего имя записи. Теперь, используя параметр extrafields, вы можете запрашивать эту метку в вызовах API.

Пример использования: при извлечении связанных записей дел вы можете включить имя записи для облегчения идентификации. Просто передайте метку в качестве дополнительного поля:

 

Улучшение 2. Поддержка столбцов меток в API linkedRecords.

В дополнение к вышеупомянутым улучшениям мы также добавили поддержку столбца меток в API VTAP linkedRecords. Это улучшение позволяет включать имя записи (метку) в ответ API, что упрощает идентификацию связанных записей и работу с ними.

ВТАП.Деталь.Запись

Ранее API AssociateRecords не поддерживал включение столбца метки, содержащего имя записи. Теперь, используя параметр 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

 
 

Один клиент попросил не отображать блок «Приглашенные» в модуле «События» для событий специального типа, отличных от «Звонка и встречи». Он занимал место на экране и не использовался для событий специального типа, используемых для внутренних событий.

Улучшенная обработка событий в модуле «События»

API событий VTAP теперь включает возможность контролировать видимость блока «Приглашенные» в модуле «События». Это усовершенствование обеспечивает точный контроль над пользовательским интерфейсом, адаптированным к конкретным потребностям вашего приложения.

  • VTAP.Событие.Регистрация: эта функция позволяет регистрировать события на стороне клиента и получать обратные вызовы, когда эти события происходят в пользовательском интерфейсе. Полный список поддерживаемых событий доступен здесь.
  • VTAP.Event.Trigger: эта функция принудительно выполняет события, предоставляемые пользовательским интерфейсом Vtiger. Мы представили два новых события для отображения и скрытия блока «Приглашенные» в модуле «События»:
  • EVENT_SHOW_INVITEES: запускает отображение блока «Приглашенные».
  • EVENT_HIDE_INVITEES: скрывает блок «Приглашенные».

Вы можете использовать эти события для динамического управления видимостью на основе ввода данных пользователем. Для других типов действий вы можете скрыть блок «Приглашенные», чтобы упростить взаимодействие с пользователем.

Создайте сценарий VTAP для модуля «События» с именем «Приглашенные» и скопируйте приведенную ниже функцию, чтобы скрыть блок «Приглашенные» для типа действия, отличного от «Встреча и звонок»:

 

Один клиент попросил не отображать блок «Приглашенные» в модуле «События» для событий специального типа, отличных от «Звонка и встречи». Он занимал место на экране и не использовался для событий специального типа, используемых для внутренних событий.

Улучшенная обработка событий в модуле «События»

API событий VTAP теперь включает возможность контролировать видимость блока «Приглашенные» в модуле «События». Это усовершенствование обеспечивает точный контроль над пользовательским интерфейсом, адаптированным к конкретным потребностям вашего приложения.

  • VTAP.Событие.Регистрация: эта функция позволяет регистрировать события на стороне клиента и получать обратные вызовы, когда эти события происходят в пользовательском интерфейсе. Полный список поддерживаемых событий доступен здесь.
  • VTAP.Event.Trigger: эта функция принудительно выполняет события, предоставляемые пользовательским интерфейсом Vtiger. Мы представили два новых события для отображения и скрытия блока «Приглашенные» в модуле «События»:
  • 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");

            }

        }

    }

});

 
 

Подпишитесь, чтобы получать последние обновления!