Scripts y trabajos del servidor

Nos complace anunciar una mejora significativa en la capacidad de personalización y automatización de Vtiger con el módulo Server Scripts & Jobs.

Las secuencias de comandos del lado del servidor son una capacidad poderosa que le permite ejecutar diversas tareas. A través de esta capacidad, puede implementar acciones personalizadas al guardar el registro o al aprobarlo o rechazarlo. También puede configurar tareas en segundo plano personalizadas para ejecutarlas a intervalos programados.

Hace tres años, lanzamos la plataforma de aplicaciones de Vtiger (VTAP), un marco de automatización de código bajo, para ayudar a las empresas a personalizar aún más su instancia de Vtiger CRM. Con VTAP, los desarrolladores pueden escribir código del lado del cliente que se ejecuta dentro del navegador del usuario para permitir la personalización del lado del cliente.

Sin embargo, existen muchos escenarios en los que el código personalizado debe ejecutarse en el extremo del servidor. 

Con Server Scripts & Jobs, los clientes y socios pueden ejecutar directamente código personalizado escrito en JavaScript en servidores Vtiger. Esta característica allana el camino para una automatización ilimitada.

Aquí algunos ejemplos:

  • Enriquezca sus datos de clientes potenciales obteniendo información de otras fuentes.
  • Importe periódicamente datos de fuentes externas a CRM.
  • Ajuste los datos en los registros principales de acuerdo con los registros secundarios o viceversa (actualice el saldo de la factura pendiente en cada organización).
  • Integre análisis personalizados impulsados ​​por IA.

Esta característica activa estos scripts del lado del servidor de dos maneras:

  • Guiones de servidor: Estos son scripts del lado del servidor que se ejecutan cuando ocurre una determinada acción. Por ejemplo, un registro se guarda o se aprueba/rechaza.
  • Trabajos de servidor: Estos son scripts del lado del servidor que se ejecutan automáticamente en intervalos fijos, como cada hora, día, semana, etc.

Caso de uso

Entendamos cómo funcionan las secuencias de comandos del lado del servidor con un ejemplo simple de actualización de montos de facturas vencidas en un registro de la organización.

Requisito: En cualquier momento, debería poder ver los montos de las facturas vencidas de cualquier organización.

Solución: Usando Server Scripts, esto se puede lograr fácilmente.

  • Cada vez que se actualiza una factura (cambio de monto o estado), se activa un script.
  • Usando el método REST de Vtiger, puede vincular todas las facturas a la organización de la factura en el script.
  • Suma el saldo de cada factura.
  • Nuevamente, utilizando el método REST de Vtiger, actualice el saldo en el campo de la Organización.
  • Esto garantizará que los montos de las facturas vencidas siempre estén visibles en un registro de la organización.


  

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

    }

}

Para obtener más información, consulte nuestra ayuda. documentación.

 
 
 

Próximamente: extensión de actualización

 
 

¡La extensión de actualización! 

Actualmente, no tenemos forma de actualizar las extensiones desde Marketplace. 

Con la próxima versión, proporcionaremos una actualización principal donde el usuario podrá actualizar las extensiones que se publican desde el editor de complementos. 

Cualquier cambio realizado en las extensiones, como flujos de trabajo, Diseñador de API, Diseñador de módulos, etc., se actualizará en la instancia del cliente. 

 

¡La extensión de actualización! 

Actualmente, no tenemos forma de actualizar las extensiones desde Marketplace. 

Con la próxima versión, proporcionaremos una actualización principal donde el usuario podrá actualizar las extensiones que se publican desde el editor de complementos. 

Cualquier cambio realizado en las extensiones, como flujos de trabajo, Diseñador de API, Diseñador de módulos, etc., se actualizará en la instancia del cliente. 

 
 

¡Regístrese para recibir las últimas actualizaciones!