Espanol Foro

Expand all | Collapse all

Entidades personalizadas vs Entidades nativas

  • 1.  Entidades personalizadas vs Entidades nativas

    Posted Apr 30, 2019 07:22 PM
    Hola Comunidad,
    Escribo este post para consultarles algo: Esta semana escuché de un técnico muy experimentado de Dynamics 365 CE que es mejor, en términos de performance, trabajar con entidades personalizadas que con las entidades nativas.
    Yo no comparto esa opinión, pero me gustaría conocer sus opiniones y sus fundamentos técnicos al respecto.
    Estamos colaborando en un proyecto, donde la performance en las consultas, mediante el uso de webapis, es clave.
    En todo este tiempo no había indagado al respecto y creo que es el momento.
    ¿Alguien me podría compartir sus experiencias y conocimientos al respecto?
    Muchas gracias.

    ------------------------------
    Alberto Avendaño
    Director
    AMGBS
    Río Ceballos
    ------------------------------


  • 2.  RE: Entidades personalizadas vs Entidades nativas

    Posted May 01, 2019 11:59 AM
    Edited by Mauricio Molina Alvarez May 01, 2019 12:34 PM
    Hola Alberto

    Creo que son dos temas que tocas en tu pregunta respecto al performace

    a) Entidades Nativas VS Entidades Custom

    El modelo nativo de Dynamics esta preparado para ofrecer buenos tiempos, algunos módulos corren por debajo gran cantidad de código por lo que podría eventualmente ser mas lentas en algún momento (por ejemplo crear un caso), sin embargo todo depende de la arquitectura general aplicada, Microsoft al definir una entidad utiliza la siguiente formula:

    Performance controlado debe ser menor a 1024
    Teniendo en cuenta la formula X *3 + Y*2 + Z*1 <= 1024
    Donde
     X Número de campos Lookup
     Y Número de campos Option Set / Boolean / Money fields
     Z Número de otros tipos de campos

    b) El performace sobre la interface de usuarios también tiene un punto de discusión, la interfaz antigua es más lenta que la interfaz unificada, ya que el fabricante eliminó gran cantidad de código sobre esta, para hacerla compatible con otros productos de Microsoft como Power Platform, y para ejecutar mejor en las nuevas versiones de browsers, esto es independiente que la entidad sea nativa o custom ambas se benefician.

    c)  El uso de WebAPI es diferente, el es camino de integración con Dynamics CE, el cual por programación común resuelve lineal, es decir las consultas o actualizaciones se encolan y dependiendo de número de llamados puede ser lento, aquí aplican mejoras tales como usar software de integración de terceros que usen multi-hilo e integración en bloque, es decir que procesen varios registros al tiempo, la programación en casa puede hacerse de esta manera pero requiere de gran experiencia en el uso del API.

    Saludos


    ------------------------------
    Mauricio Molina Alvarez
    General Manager
    Smart Process S.A.S.
    CRM Integration Company
    www.smartxrm.com
    ------------------------------



  • 3.  RE: Entidades personalizadas vs Entidades nativas

    Posted May 02, 2019 09:56 AM
    Muchas gracias Mauricio por tu comentario. En este proyecto, el uso de las webapi es el foco, ya que se integran sistemas externos, y se necesitan tiempos de respuesta rápidos, por ejemplo, se deben traer a un front personalizado todos los servicios que ha adquirido un cliente y toda una gama de ofertas a las que aplica. Ambas son entidades de CRM. La arquitectura no fue bien encarada, y creo que eso fue el principal problema, ya que no sólo se consulta, sino que se hacen muchas otras operaciones por detrás y los tiempos de respuesta superan los 10 segundos. Estamos trabajando en esto, cuando surgió el tema de performance de entidades nativas vs personalizadas como algo a considerar también. Muchas gracias por tu ayuda.

    ------------------------------
    Alberto Avendaño
    Director
    AMGBS
    Río Ceballos
    ------------------------------



  • 4.  RE: Entidades personalizadas vs Entidades nativas

    Posted Jun 12, 2019 08:59 AM
    Como estas Mauricio, una consulta, la fórmula que mencionas va para la entidad o para el formulario?  actualmente estoy trabajando en la entidad oferta en donde se va realizar la carga de la solicitud de crédito en donde fácilmente hay 500 Campos personalizados en donde el 80% es de tipo "Line de Texto unica", por suerte estamos pasando a la interfaz unificada donde se nota la rapidez del dynamics, pero me preocupa que la cantidad de campos puede llegar a generar un problema en el futuro

    ------------------------------
    Tobias Almada
    Olam SRL
    ------------------------------



  • 5.  RE: Entidades personalizadas vs Entidades nativas

    Posted Jun 13, 2019 05:33 AM
    Hola Tobías

    No creo que exista problema de rendimiento, para no tener problemas a futuro lo que recomiendo es tener buena calidad en el código si existe, tratar de controlar la cantidad de código JavaScript, es mejor tener funcionalidad nativa como reglas de negocio y workflows sincrónicos, que pueden ser otros factores que inciden en el rendimiento.

    ------------------------------
    Mauricio Molina Alvarez
    General Manager
    Smart Process S.A.S.
    www.smartxrm.com
    ------------------------------



  • 6.  RE: Entidades personalizadas vs Entidades nativas

    Posted Jun 13, 2019 07:44 AM
    ¡Hola! Sólo un comentario sobre lo que dice Mauricio. Mucho cuidado con el uso de los workflows sincrónicos, porque ellos detienen todo, hasta la funcionalidad de la interfaz de usuario, hasta que finalice su ejecución.

    Ya he visto implementaciones cuyo rendimiento era pésimo porque había muchos flujos sincrónicos que detenían todo, al punto de tardar 1 minuto y medio para guardar un registro.

    Como recomendación, usar sólo flujos sincrónicos para validaciones que dependen de elementos externos que son necesarias para continuar con un proceso, no usarlos nunca para definir elementos de interfaz, envío de notificaciones y procesos en general que pueden resolverse en segundo plano.

    ------------------------------
    Alberto Avendaño
    Director
    AMGBS
    Río Ceballos
    ------------------------------



  • 7.  RE: Entidades personalizadas vs Entidades nativas

    Posted May 01, 2019 03:53 PM

    Hola Alberto,

     

    Hablando directamente a como entidades personalizadas pueden ofrecer mejor "performance", hay tres temas importantes para considerar:

    • Muchas entidades nativas consisten de varias tablas/entidades en el base de datos, no solo el titular. Por ejemplo, crear un contacto o cuenta (cuales se llaman "entidades de cliente") resulta en la creación de varios registros en varias tablas en el base de datos.
    • Varias entidades nativas llevan lógica/"plugins"/"workflows" nativa(s) que ejecutan con operaciones CLAB (Crear, Leer, Actualizar, Borrar). Ejemplos de estos serían entidades de actividades (i.e. email, tarea, llamada telefónica) y entidades de venta (i.e. oportunidad, pedido).
    • Varias entidades nativas ya tienen relaciones a otras entidades y funciones habilitados que los hacen complejos. Estos se pueden ver en la configuración de la entidad en sus relaciones y bajo "Comunicación y colaboración", por ejemplo.

     

    Con entidades personalizadas, puede uno controlar mejor el nivel de complejidad con los temas arriba, salvo un poco con entidades personalizadas de tipo actividad. Y a través de esto, mejorar el performance/rendimiento. Por ejemplo, crear una entidad muy básica con pocas relaciones a otras entidades, sin flujos de proceso, sin notas, sin workflows/plugins, etc para que sea "liviana" para procesar operaciones CLAB. 

     

    Otro tema para considerar con el WebAPI, si es que vayan desplegar el código/solución afuera de CRM/CE, es latencia de red.

     

    Espero que esto haya ayudado un poco a la conversación.

     

    -AEB



    ------------------------------
    Arturo Bimrose
    arturo.bimrose@alithya.com
    Arquitecto de Sistemas
    ------------------------------



  • 8.  RE: Entidades personalizadas vs Entidades nativas

    Posted May 02, 2019 09:50 AM
    Muchas gracias Arturo por tu comentario. Me pareció muy interesante lo que indicás. Son cosas que no las tenés en cuenta hasta que te topás con los problemas. Como indiqué, el tema de performance es crucial en el proyecto donde estoy trabajando, más que en cualquier otro en el que haya trabajado. Muchas gracias.

    ------------------------------
    Alberto Avendaño
    Director
    AMGBS
    Río Ceballos
    ------------------------------