Серверные сценарии и задания

Мы рады сообщить о значительном улучшении возможностей настройки и автоматизации Vtiger с помощью модуля «Серверные сценарии и задания».

Сценарии на стороне сервера — это мощная возможность, позволяющая выполнять разнообразные задачи. Благодаря этой возможности вы можете выполнять специальные действия при сохранении записи или при утверждении/отклонении. Вы также можете настроить собственные фоновые задачи для выполнения через запланированные промежутки времени.

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

Однако существует множество сценариев, в которых пользовательский код должен выполняться на стороне сервера. 

С помощью серверных сценариев и заданий клиенты и партнеры могут напрямую запускать собственный код, написанный на JavaScript, на серверах Vtiger. Эта функция открывает путь к неограниченной автоматизации.

Вот несколько примеров:

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

Эта функция запускает эти серверные сценарии двумя способами:

  • Скрипты сервера: это серверные сценарии, которые выполняются при выполнении определенного действия. Например, запись сохранена или одобрена/отклонена.
  • Серверные задания: это серверные сценарии, которые выполняются автоматически через фиксированные интервалы времени, например ежечасно, ежедневно, еженедельно и т. д.

Кейсы

Давайте разберемся, как работают сценарии на стороне сервера, на простом примере обновления сумм просроченных счетов в записи организации.

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

Решение: Этого можно легко добиться с помощью серверных сценариев.

  • Каждый раз, когда счет-фактура обновляется (изменение суммы или статуса), вы запускаете сценарий.
  • Используя метод 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, конструктор модулей и т. д., будут обновлены для экземпляра клиента. 

 

Расширение обновления! 

В настоящее время у нас нет возможности обновлять расширения из Marketplace. 

В предстоящем выпуске мы предоставим основное обновление, в котором пользователь сможет обновлять расширения, опубликованные из издателя надстроек. 

Любые изменения, внесенные в расширения, такие как рабочие процессы, конструктор API, конструктор модулей и т. д., будут обновлены для экземпляра клиента. 

 
 

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