Améliorations des API JavaScript VTAP

Nous sommes ravis d'annoncer des améliorations significatives des API JavaScript VTAP, conçues pour responsabiliser les développeurs et les partenaires travaillant avec Vtiger CRM.

Ces améliorations se concentrent sur l'amélioration de la flexibilité et des fonctionnalités de la plateforme, notamment au sein du module Events et de l'API RelatedRecords. Ci-dessous, nous décrivons les principales mises à jour qui vous permettent de créer de nombreuses solutions CRM dynamiques et réactives.

Amélioration 1 : prise en charge des champs supplémentaires dans l'API RelatedRecords

Nous avons étendu l'API VTAP RelatedRecords pour inclure la prise en charge de champs supplémentaires paramètre, vous permettant de récupérer des champs supplémentaires au-delà de ceux fournis par défaut. Cette amélioration offre plus de flexibilité lors de l'utilisation d'enregistrements associés, permettant des interactions de données plus riches.

VTAP.Detail.RelatedRecords

Cette API récupère les enregistrements associés pour un module donné. Par défaut, il inclut les champs activés pour la création rapide, l'en-tête, etc. Avec le nouveau champs supplémentaires , vous pouvez désormais spécifier des champs supplémentaires à inclure dans la réponse, offrant ainsi un meilleur aperçu des données associées.

Exemple de cas d'utilisation : Supposons que vous travaillez avec le module Contacts et que vous souhaitiez récupérer les enregistrements de cas associés qui incluent des champs tels que canal de cas et slatatus, qui ne font pas partie de la réponse par défaut. Vous pouvez désormais facilement inclure ces champs dans votre requête API :


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['casechannel', 'slastatus'] })

    .then((case_records) => {

        // Process the retrieved case records with extra fields

    });


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['casechannel', 'slastatus'] })

    .then((case_records) => {

        // Process the retrieved case records with extra fields

    });

 

Amélioration 2 : prise en charge de la colonne d'étiquette dans l'API RelatedRecords

En plus des améliorations ci-dessus, nous avons également ajouté la prise en charge de la colonne d'étiquette dans l'API VTAP RelatedRecords. Cette amélioration vous permet d'inclure le nom de l'enregistrement (libellé) dans la réponse de l'API, ce qui facilite l'identification et l'utilisation des enregistrements associés.

VTAP.Détail.Enregistrement

Auparavant, l'API RelatedRecords ne prenait pas en charge l'inclusion de la colonne d'étiquette, qui contient le nom de l'enregistrement. Désormais, en utilisant le paramètre extrafields, vous pouvez demander ce label dans vos appels API.

Exemple de cas d'utilisation: lors de la récupération des enregistrements de cas associés, vous souhaiterez peut-être inclure le nom de l'enregistrement pour une identification facile. Passez simplement l'étiquette comme champ supplémentaire :

 

Amélioration 2 : prise en charge de la colonne d'étiquette dans l'API RelatedRecords

En plus des améliorations ci-dessus, nous avons également ajouté la prise en charge de la colonne d'étiquette dans l'API VTAP RelatedRecords. Cette amélioration vous permet d'inclure le nom de l'enregistrement (libellé) dans la réponse de l'API, ce qui facilite l'identification et l'utilisation des enregistrements associés.

VTAP.Détail.Enregistrement

Auparavant, l'API RelatedRecords ne prenait pas en charge l'inclusion de la colonne d'étiquette, qui contient le nom de l'enregistrement. Désormais, en utilisant le paramètre extrafields, vous pouvez demander ce label dans vos appels API.

Exemple de cas d'utilisation: lors de la récupération des enregistrements de cas associés, vous souhaiterez peut-être inclure le nom de l'enregistrement pour une identification facile. Passez simplement l'étiquette comme champ supplémentaire :


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['label'] })

    .then((case_records) => {

        // The response now includes the label (name) of each case

    });


  

VTAP.Detail.RelatedRecords("Cases", { 'extrafields': ['label'] })

    .then((case_records) => {

        // The response now includes the label (name) of each case

    });

 

Ces améliorations font partie de notre engagement continu à vous fournir des outils puissants pour créer des applications dynamiques de niveau entreprise sur la plateforme Vtiger CRM. Nous vous encourageons à explorer ces nouvelles fonctionnalités et à les intégrer dans vos projets pour améliorer l'expérience utilisateur globale.

Restez à l'écoute pour plus de mises à jour et bon codage !

 

Ces améliorations font partie de notre engagement continu à vous fournir des outils puissants pour créer des applications dynamiques de niveau entreprise sur la plateforme Vtiger CRM. Nous vous encourageons à explorer ces nouvelles fonctionnalités et à les intégrer dans vos projets pour améliorer l'expérience utilisateur globale.

Restez à l'écoute pour plus de mises à jour et bon codage !

 
 
 

Cas d'utilisation client VTAP

 
 

Un client a demandé de ne pas afficher le bloc Invités dans le module Événements pour les événements de type personnalisé autres que les appels et les réunions. Cela occupait de l'espace sur l'écran sans aucune utilité pour les événements de type personnalisé utilisés pour les événements internes.

Gestion améliorée des événements dans le module Événements

L'API d'événements VTAP inclut désormais la possibilité de contrôler la visibilité du bloc Invités dans le module Événements. Cette amélioration permet un contrôle précis de l'interface utilisateur, adapté aux besoins spécifiques de votre application.

  • VTAP.Event.Register: Cette fonction vous permet d'enregistrer des événements côté client et de recevoir des rappels lorsque ces événements se produisent dans l'interface utilisateur. Une liste complète des événements pris en charge est disponible ici.
  • VTAP.Event.Trigger: Cette fonction force l'exécution des événements fournis par l'interface utilisateur de Vtiger. Nous avons introduit deux nouveaux événements pour afficher et masquer le bloc Invités dans le module Événements :
  • EVENT_SHOW_INVITEES: Déclenche l'affichage du bloc Invités.
  • EVENT_HIDE_INVITEES: Masque le bloc Invités.

Vous pouvez exploiter ces événements pour contrôler dynamiquement la visibilité en fonction des entrées de l'utilisateur. Pour les autres types d'activités, vous pouvez masquer le bloc Invités pour rationaliser l'expérience utilisateur.

Créez un script VTAP pour le module Événements avec le nom Invités et copiez la fonction ci-dessous pour masquer le bloc Invités pour le type d'activité autre que Réunion et Appel :

 

Un client a demandé de ne pas afficher le bloc Invités dans le module Événements pour les événements de type personnalisé autres que les appels et les réunions. Cela occupait de l'espace sur l'écran sans aucune utilité pour les événements de type personnalisé utilisés pour les événements internes.

Gestion améliorée des événements dans le module Événements

L'API d'événements VTAP inclut désormais la possibilité de contrôler la visibilité du bloc Invités dans le module Événements. Cette amélioration permet un contrôle précis de l'interface utilisateur, adapté aux besoins spécifiques de votre application.

  • VTAP.Event.Register: Cette fonction vous permet d'enregistrer des événements côté client et de recevoir des rappels lorsque ces événements se produisent dans l'interface utilisateur. Une liste complète des événements pris en charge est disponible ici.
  • VTAP.Event.Trigger: Cette fonction force l'exécution des événements fournis par l'interface utilisateur de Vtiger. Nous avons introduit deux nouveaux événements pour afficher et masquer le bloc Invités dans le module Événements :
  • EVENT_SHOW_INVITEES: Déclenche l'affichage du bloc Invités.
  • EVENT_HIDE_INVITEES: Masque le bloc Invités.

Vous pouvez exploiter ces événements pour contrôler dynamiquement la visibilité en fonction des entrées de l'utilisateur. Pour les autres types d'activités, vous pouvez masquer le bloc Invités pour rationaliser l'expérience utilisateur.

Créez un script VTAP pour le module Événements avec le nom Invités et copiez la fonction ci-dessous pour masquer le bloc Invités pour le type d'activité autre que Réunion et Appel :


  

var Events_Component_Invitess = VTAP.Component.Core.extend({

    mounted() {

        VTAP.Event.Register("CREATE_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

        VTAP.Event.Register("EDIT_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

    },

    methods : {

        observeEventsFormActivityType(data) {

            if (data.module == "Events") {

                setTimeout(() => {

                    var element = jQuery('select[name="activitytype"]');

                    if (element.length) {

                        this.handleEventsFormActivityType(element.get(0).value);

                        element.on('change', () => { this.handleEventsFormActivityType(element.get(0).value); }); /* changes */

                    } else {

                        if(data && data.record) {

                            VTAP.Api.Get('records', {

                                'module': 'Events',

                                'id': data.record

                            }, (error, response) => {

                                this.handleEventsFormActivityType(response.activitytype);

                            });

                        }

                    }

                }, 500);

            }

        },

        handleEventsFormActivityType(activityType) {

            if (activityType == "Call" || activityType == "Meeting") {

                VTAP.Event.Trigger("EVENT_SHOW_INVITEES");

            } else {

                VTAP.Event.Trigger("EVENT_HIDE_INVITEES");

            }

        }

    }

});


  

var Events_Component_Invitess = VTAP.Component.Core.extend({

    mounted() {

        VTAP.Event.Register("CREATE_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

        VTAP.Event.Register("EDIT_MODAL_SHOWN", (data) => { this.observeEventsFormActivityType(data); });

    },

    methods : {

        observeEventsFormActivityType(data) {

            if (data.module == "Events") {

                setTimeout(() => {

                    var element = jQuery('select[name="activitytype"]');

                    if (element.length) {

                        this.handleEventsFormActivityType(element.get(0).value);

                        element.on('change', () => { this.handleEventsFormActivityType(element.get(0).value); }); /* changes */

                    } else {

                        if(data && data.record) {

                            VTAP.Api.Get('records', {

                                'module': 'Events',

                                'id': data.record

                            }, (error, response) => {

                                this.handleEventsFormActivityType(response.activitytype);

                            });

                        }

                    }

                }, 500);

            }

        },

        handleEventsFormActivityType(activityType) {

            if (activityType == "Call" || activityType == "Meeting") {

                VTAP.Event.Trigger("EVENT_SHOW_INVITEES");

            } else {

                VTAP.Event.Trigger("EVENT_HIDE_INVITEES");

            }

        }

    }

});

 
 

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