Сървърни скриптове и задачи

Ние сме развълнувани да обявим значително подобрение на възможностите за персонализиране и автоматизация на Vtiger с модула Server Scripts & Jobs.

Скриптовете от страна на сървъра са мощна възможност, която ви позволява да изпълнявате различни задачи. Чрез тази възможност можете да изпълнявате персонализирани действия при запазване на запис или при одобрение/отхвърляне. Можете също да настроите персонализирани фонови задачи, които да се изпълняват на планирани интервали.

Преди три години стартирахме платформата за приложения на Vtiger (VTAP), автоматизирана рамка с нисък код, за да помогнем на бизнеса да персонализира допълнително своя екземпляр на Vtiger CRM. С VTAP разработчиците могат да пишат код от страна на клиента, който се изпълнява в браузъра на потребителя, за да се даде възможност за персонализиране от страна на клиента.

Има обаче много сценарии, при които потребителският код трябва да се изпълнява в края на сървъра. 

Със сървърните скриптове и задачи клиентите и партньорите могат директно да изпълняват персонализиран код, написан на JavaScript, на сървъри на Vtiger. Тази функция проправя пътя за неограничена автоматизация.

Ето няколко примера:

  • Обогатете вашите данни за възможни клиенти, като извлечете информация от други източници.
  • Периодично импортирайте данни от външни източници в CRM.
  • Коригирайте данните в родителските записи според дъщерните записи или обратно (актуализирайте неплатеното салдо по фактури във всяка организация).
  • Интегрирайте базиран на AI персонализиран анализ.

Тази функция задейства тези сървърни скриптове по два начина:

  • Сървърни скриптове: Това са скриптове от страна на сървъра, които се изпълняват, когато се случи определено действие. Например записът е запазен или одобрен/отхвърлен.
  • Сървърни задачи: Това са скриптове от страна на сървъра, които се изпълняват автоматично на фиксирани интервали като ежечасно, ежедневно, седмично и т.н.

Използвайте делото

Нека разберем как работи скриптът от страна на сървъра с прост пример за актуализиране на суми по просрочени фактури в запис на организация.

Изискване: Във всеки момент трябва да можете да видите просрочени суми по фактури на всяка организация.

Решение: С помощта на сървърни скриптове това може да се постигне лесно.

  • Всеки път, когато дадена фактура се актуализира (сума или промяна на състоянието), вие задействате скрипт.
  • Използвайки метода REST на Vtiger, можете да свържете всички фактури с организацията на фактурата в скрипта.
  • Сумирайте салдото на всяка фактура.
  • Отново, като използвате метода REST на Vtiger, актуализирайте баланса в полето на организацията.
  • Това ще гарантира, че просрочените суми по фактурите винаги ще бъдат видими в запис на организация.


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}


  

async function main(record, user) {

    var orgId = record.account_id;

    try {

        var response = await vtap.macro.ws.api('GET', 'retrieve_related', {

            id: '3x'+orgId,

            relatedLabel: 'Invoice',

            relatedType: 'Invoice'

        });

        if(response && response.success) {

            var overdueAmount = 0;

            for(var index in response.result) {

                var invoice = response.result[index];

                var balance = parseFloat(invoice.balance);

                if(balance && !isNaN(balance)) {

                    overdueAmount = overdueAmount + balance;

                }

            }

            await vtap.macro.ws.revise({

                id: '3x'+orgId,

                cf_outstanding_invoice_amount: overdueAmount

            });

        }

    } catch(error) {

    }

}

За да научите повече, моля, вижте нашата помощ документация.

 
 
 

Очаквайте скоро - актуализирайте разширението

 
 

Разширението за актуализиране! 

Понастоящем не разполагаме с начин за актуализиране на разширения от Marketplace. 

С предстоящото издание ще предоставим основна актуализация, където потребителят ще може да актуализира разширенията, които са публикувани от издателя на добавки. 

Всички промени, направени в разширенията, като работни потоци, API Designer, Module Designer и т.н., ще бъдат актуализирани до екземпляра на клиента. 

 

Разширението за актуализиране! 

Понастоящем не разполагаме с начин за актуализиране на разширения от Marketplace. 

С предстоящото издание ще предоставим основна актуализация, където потребителят ще може да актуализира разширенията, които са публикувани от издателя на добавки. 

Всички промени, направени в разширенията, като работни потоци, API Designer, Module Designer и т.н., ще бъдат актуализирани до екземпляра на клиента. 

 
 

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