VTAP API, направен лесно: Управление на записи с функции за премахване на връзки, изтриване и филтриране

С платформата за приложения 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);

});

Това връща всички свързани метаданни за модула „Потенциали“, включително идентификатори на релации и етикети.

Изтриване на запис:


  

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

});

Това ще премахне окончателно записа за абонамент с ID 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 извиквания.
  • Подходящ за програмистиНапълно поддържа асинхронен JavaScript синтаксис (async/await), което прави интеграцията гладка във VTAP среди.

Вярваме, че тези примери ще подобрят вашето изживяване с Vtiger CRM. Искаме да гарантираме, че разработчиците и потребителите на CRM могат взаимно да споделят информация и знания, за да подобрят функционалността на CRM. 

Очаквайте още. Честито кодиране!

 
 

Регистрирайте се, за да получавате най-новите актуализации!