Простота использования API VTAP: управление записями с помощью функций отмены связи, удаления и фильтрации

Благодаря платформе приложений Vtiger (VTAP) разработчики теперь могут использовать оптимизированный и программируемый интерфейс для выполнения операций с записями через унифицированный API. В этой статье показано, как эффективно разрывать связи между связанными записями, удалять целевые записи и применять расширенные фильтры, повышая контроль, эффективность и надежность логики вашего приложения.

Давайте узнаем больше о вышеизложенном.

Краткое изложение проблемы

При управлении связанными записями в разных модулях пользователи часто сталкиваются с такими эксплуатационными трудностями, как:

  • Отмена связи между связанными записями (например, удаление связанного счета-фактуры или контакта из сделки).
  • Безвозвратное удаление устаревших записей (например, неактивных подписок).
  • Выполнение сложных многоусловных фильтров для извлечения определенных наборов данных (например, платежей с определенными статусами или попытками повтора).

Выполнение этих задач вручную или с нечеткими указаниями API может привести к неэффективности, повышенному риску потери данных и несоответствиям в реализации логики.

Цель

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

Детали реализации

Отмена привязки связанной записи:

Чтобы удалить связь между двумя записями (например, отменить связь между счетом-фактурой и потенциальным счетом-фактурой), используйте следующий фрагмент:


  

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

});

Это приведет только к отмене связи между записью. Исходный счет-фактура и потенциальный платеж останутся нетронутыми.

Как динамически получить relation_id:


  

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

    console.log(relations);

});


  

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

    console.log(relations);

});

Возвращает все связанные метаданные для модуля Potentials, включая идентификаторы связей и метки.

Удаление записи:


  

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 позволяет выполнять сложные многоусловные запросы, сводя к минимуму ненужные вызовы API.
  • Разработчик-Friendly: Полностью поддерживает асинхронный синтаксис JavaScript (async/await), что обеспечивает беспроблемную интеграцию в средах VTAP.

Мы считаем, что эти примеры улучшат ваш опыт работы с Vtiger CRM. Мы хотим гарантировать, что разработчики и пользователи CRM смогут обмениваться информацией и знаниями для дальнейшего расширения функциональности CRM. 

Оставайтесь с нами для большего. Приятного кодирования!

 
 

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