Mejoras a las API de JavaScript de VTAP

Nos complace anunciar mejoras significativas en las API de JavaScript de VTAP, diseñadas para capacitar a los desarrolladores y socios que trabajan con Vtiger CRM.

Estas mejoras se centran en mejorar la flexibilidad y funcionalidad de la plataforma, particularmente dentro del módulo Eventos y la API RelatedRecords. A continuación, describimos las actualizaciones clave que le permiten crear muchas soluciones CRM dinámicas y responsivas.

Mejora 1: compatibilidad con campos adicionales en la API de RelatedRecords

Hemos ampliado la API de VTAP RelatedRecords para incluir soporte para el extracampos parámetro, que le permite recuperar campos adicionales además de los predeterminados proporcionados. Esta mejora ofrece más flexibilidad al trabajar con registros relacionados, lo que permite interacciones de datos más ricas.

VTAP.Detalle.Registros relacionados

Esta API recupera registros relacionados para un módulo determinado. De forma predeterminada, incluye campos que están habilitados para Creación rápida, Encabezado, etc. Con el nuevo extracampos parámetro, ahora puede especificar campos adicionales que se incluirán en la respuesta, lo que proporciona una mayor visión de los datos relacionados.

Ejemplo de caso de uso: Supongamos que está trabajando con el módulo Contactos y desea recuperar registros de casos relacionados que incluyen campos como canal de caso y estado de estado, que no forman parte de la respuesta predeterminada. Ahora puede incluir fácilmente estos campos en su solicitud de 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

    });

 

Mejora 2: compatibilidad con columnas de etiquetas en la API de RelatedRecords

Además de las mejoras anteriores, también agregamos compatibilidad con la columna de etiqueta en la API VTAP RelatedRecords. Esta mejora le permite incluir el nombre del registro (etiqueta) en la respuesta de la API, lo que facilita la identificación y el trabajo con registros relacionados.

Registro.Detalle.VTAP

Anteriormente, la API de RelatedRecords no admitía la inclusión de la columna de etiqueta, que contiene el nombre del registro. Ahora, al utilizar el parámetro extrafields, puede solicitar esta etiqueta en sus llamadas API.

Ejemplo de caso de uso: Al recuperar registros de casos relacionados, es posible que desee incluir el nombre del registro para una fácil identificación. Simplemente pase la etiqueta como campo adicional:

 

Mejora 2: compatibilidad con columnas de etiquetas en la API de RelatedRecords

Además de las mejoras anteriores, también agregamos compatibilidad con la columna de etiqueta en la API VTAP RelatedRecords. Esta mejora le permite incluir el nombre del registro (etiqueta) en la respuesta de la API, lo que facilita la identificación y el trabajo con registros relacionados.

Registro.Detalle.VTAP

Anteriormente, la API de RelatedRecords no admitía la inclusión de la columna de etiqueta, que contiene el nombre del registro. Ahora, al utilizar el parámetro extrafields, puede solicitar esta etiqueta en sus llamadas API.

Ejemplo de caso de uso: Al recuperar registros de casos relacionados, es posible que desee incluir el nombre del registro para una fácil identificación. Simplemente pase la etiqueta como campo adicional:


  

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

    });

 

Estas mejoras son parte de nuestro compromiso continuo de brindarle herramientas poderosas para crear aplicaciones dinámicas de nivel empresarial en la plataforma Vtiger CRM. Le animamos a explorar estas nuevas funciones y a integrarlas en sus proyectos para mejorar la experiencia general del usuario.

¡Estén atentos para más actualizaciones y feliz codificación!

 

Estas mejoras son parte de nuestro compromiso continuo de brindarle herramientas poderosas para crear aplicaciones dinámicas de nivel empresarial en la plataforma Vtiger CRM. Le animamos a explorar estas nuevas funciones y a integrarlas en sus proyectos para mejorar la experiencia general del usuario.

¡Estén atentos para más actualizaciones y feliz codificación!

 
 
 

Caso de uso del cliente VTAP

 
 

Un cliente solicitó no mostrar el bloque Invitados en el módulo Eventos para eventos de tipo personalizado que no sean Llamada y Reunión. Ocupaba espacio en la pantalla sin uso para eventos de tipo personalizado utilizados para eventos internos.

Manejo de eventos mejorado en el módulo de eventos

La API de eventos de VTAP ahora incluye la capacidad de controlar la visibilidad del bloque de invitados dentro del módulo de eventos. Esta mejora permite un control preciso sobre la interfaz de usuario, adaptado a las necesidades específicas de su aplicación.

  • VTAP.Evento.Registro: Esta función le permite registrar eventos del lado del cliente y recibir devoluciones de llamadas cuando estos eventos ocurren en la interfaz de usuario. Una lista completa de eventos admitidos está disponible aquí.
  • VTAP.Evento.Disparador: Esta función fuerza la ejecución de eventos proporcionados por la interfaz de usuario de Vtiger. Hemos introducido dos nuevos eventos para mostrar y ocultar el bloque Invitados en el módulo Eventos:
  • EVENT_SHOW_INVITEES: Activa la visualización del bloque Invitados.
  • EVENT_HIDE_INVITEES: Oculta el bloque de Invitados.

Puede aprovechar estos eventos para controlar dinámicamente la visibilidad en función de la entrada del usuario. Para otros tipos de actividades, puede ocultar el bloque Invitados para optimizar la experiencia del usuario.

Cree una secuencia de comandos VTAP para el módulo Eventos con el nombre Invitados y copie la siguiente función para ocultar el bloque Invitados para el Tipo de actividad que no sea Reunión y Llamada:

 

Un cliente solicitó no mostrar el bloque Invitados en el módulo Eventos para eventos de tipo personalizado que no sean Llamada y Reunión. Ocupaba espacio en la pantalla sin uso para eventos de tipo personalizado utilizados para eventos internos.

Manejo de eventos mejorado en el módulo de eventos

La API de eventos de VTAP ahora incluye la capacidad de controlar la visibilidad del bloque de invitados dentro del módulo de eventos. Esta mejora permite un control preciso sobre la interfaz de usuario, adaptado a las necesidades específicas de su aplicación.

  • VTAP.Evento.Registro: Esta función le permite registrar eventos del lado del cliente y recibir devoluciones de llamadas cuando estos eventos ocurren en la interfaz de usuario. Una lista completa de eventos admitidos está disponible aquí.
  • VTAP.Evento.Disparador: Esta función fuerza la ejecución de eventos proporcionados por la interfaz de usuario de Vtiger. Hemos introducido dos nuevos eventos para mostrar y ocultar el bloque Invitados en el módulo Eventos:
  • EVENT_SHOW_INVITEES: Activa la visualización del bloque Invitados.
  • EVENT_HIDE_INVITEES: Oculta el bloque de Invitados.

Puede aprovechar estos eventos para controlar dinámicamente la visibilidad en función de la entrada del usuario. Para otros tipos de actividades, puede ocultar el bloque Invitados para optimizar la experiencia del usuario.

Cree una secuencia de comandos VTAP para el módulo Eventos con el nombre Invitados y copie la siguiente función para ocultar el bloque Invitados para el Tipo de actividad que no sea Reunión y Llamada:


  

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");

            }

        }

    }

});

 
 

¡Regístrese para recibir las últimas actualizaciones!