Scripts et tâches du serveur

Nous sommes ravis d'annoncer une amélioration significative de la capacité de personnalisation et d'automatisation de Vtiger avec le module Server Scripts & Jobs.

Les scripts côté serveur sont une fonctionnalité puissante qui vous permet d'exécuter diverses tâches. Grâce à cette fonctionnalité, vous pouvez exécuter des actions personnalisées lors de la sauvegarde de l'enregistrement ou lors de l'approbation/rejet. Vous pouvez également configurer des tâches en arrière-plan personnalisées à exécuter à intervalles planifiés.

Il y a trois ans, nous avons lancé Vtiger's Application Platform (VTAP), un framework d'automatisation low-code, pour aider les entreprises à personnaliser davantage leur instance Vtiger CRM. Avec VTAP, les développeurs peuvent écrire du code côté client qui s'exécute dans le navigateur de l'utilisateur pour permettre la personnalisation côté client.

Cependant, il existe de nombreux scénarios dans lesquels le code personnalisé doit s'exécuter du côté du serveur. 

Avec les scripts et travaux serveur, les clients et partenaires peuvent exécuter directement du code personnalisé écrit en JavaScript sur les serveurs Vtiger. Cette fonctionnalité ouvre la voie à une automatisation illimitée.

Voici quelques exemples:

  • Enrichissez vos données de prospects en récupérant des informations provenant d'autres sources.
  • Importez périodiquement des données de sources externes vers CRM.
  • Ajustez les données des enregistrements parents en fonction des enregistrements enfants ou vice versa (mettez à jour le solde des factures impayées dans chaque organisation).
  • Intégrez une analyse personnalisée basée sur l’IA.

Cette fonctionnalité déclenche ces scripts côté serveur de deux manières :

  • Script serveur: Ce sont des scripts côté serveur qui s'exécutent lorsqu'une certaine action se produit. Par exemple, un enregistrement est enregistré ou approuvé/rejeté.
  • Emplois de serveur: Il s'agit de scripts côté serveur qui s'exécutent automatiquement à intervalles fixes comme toutes les heures, tous les jours, toutes les semaines, etc.

Case Study

Comprenons comment fonctionnent les scripts côté serveur avec un exemple simple de mise à jour des montants de factures en retard dans un enregistrement d'organisation.

Exigence: À tout moment, vous devriez pouvoir voir les montants des factures en souffrance de n'importe quelle organisation.

Solution: Grâce aux scripts serveur, cela peut être réalisé facilement.

  • A chaque fois qu'une facture est mise à jour (montant ou changement de statut), vous déclenchez un script.
  • En utilisant la méthode REST de Vtiger, vous pouvez lier toutes les factures à l'organisation de la facture dans le script.
  • Additionnez le solde de chaque facture.
  • Encore une fois, en utilisant la méthode REST de Vtiger, mettez à jour le solde dans le champ Organisation.
  • Cela garantira que les montants des factures en retard seront toujours visibles dans un enregistrement de l’organisation.


  

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

    }

}

Pour en savoir plus, veuillez vous référer à notre aide Documentation.

 
 
 

Bientôt disponible - Extension de mise à jour

 
 

L'extension de mise à jour ! 

Actuellement, nous n'avons aucun moyen de mettre à jour les extensions depuis la Marketplace. 

Avec la prochaine version, nous fournirons une mise à jour principale dans laquelle l'utilisateur pourra mettre à jour les extensions publiées à partir de l'éditeur de modules complémentaires. 

Toutes les modifications apportées aux extensions telles que les workflows, API Designer, Module Designer, etc., seront mises à jour dans l'instance client. 

 

L'extension de mise à jour ! 

Actuellement, nous n'avons aucun moyen de mettre à jour les extensions depuis la Marketplace. 

Avec la prochaine version, nous fournirons une mise à jour principale dans laquelle l'utilisateur pourra mettre à jour les extensions publiées à partir de l'éditeur de modules complémentaires. 

Toutes les modifications apportées aux extensions telles que les workflows, API Designer, Module Designer, etc., seront mises à jour dans l'instance client. 

 
 

Inscrivez-vous pour recevoir les dernières mises à jour!