activar virtual tables automático

Activación automática de Virtual Tables en D365F&O

A estas alturas, todos sabemos de la importancia que tiene el uso de Tablas Virtuales o Virtual Tables (aka Virtual Entities) en en Dynamics 365 Finance and Operations apps. Quizá uno de los usos más comunes y conocidos es el de utilizar Dynamics 365 F&O como origen de datos en Power Apps de tipo lienzo (canvas) sin la necesidad de almacenar datos en Dataverse, con el sobrecoste (de almacenamiento) que conlleva, pero de un tiempo a esta parte, se han convertido en un actor a tener muy presente en varias funcionalidades y, para que te hagas una idea, paso a listar algunas de ellas:

  • Acceso a datos de F&O desde Power Apps, Power Automate y Power Pages a través del conector de Dataverse
  • Consumir Business Events (desde el conector de Dataverse de Power Platform)
  • Consumir Data Events (reaccionar ante operaciones CRUD en F&O)
  • Operaciones CRUD a través del API de Dataverse
  • Copilot for Finance and Operations
  • Archivado de datos con Dataverse LTR
  • Reporting y BI con Synapse Link for Dataverse

Como podéis ver, no son pocos los usos que podemos hacer de estas tablas virtuales. El problema, en mi opinión, es el propio proceso de activación de las mismas, que si bien no es nada difícil, si que es trata, como podemos ver en la documentación oficial, de un proceso algo laborioso y muy manual, que puede convertirse en una pequeña pesadilla si necesitamos activar decenas de estas entidades (es un proceso que tarda bastante y hay que ir de una en una).

Es cierto que podríamos automatizar este proceso a través del API de Dataverse (al final, «solo» es actualizar un registro en la tabla (virtual) Available Finance and Operations Entity (mserp_financeandoperationsentity), o incluso utilizar las herramientas creadas por la comunidad como el Finance and Operations Virtual Entity Manager for XrmToolBox creado por David Rivard, pero, y aquí viene la novedad, Microsoft ha liberado una nueva funcionalidad en la versión 10.0.39 que nos permite hacer que las entidades virtuales (que nosotros queramos) se activen de forma automática sin necesidad de llevar a cabo estos pasos manuales. ¿Y cómo funciona?, os preguntaréis. ¡Pues vamos a verlo!

Propiedad Dataverse Auto Create

Existe, a partir de la versión 10.0.39, una nueva propiedad (en realidad 2) a nivel de Data Entity. Estas propiedades se encuentran dentro de la agrupación Dataverse. Estas propiedades son Auto Create y Is Search Enabled.

La propiedad Auto Create, como puedes imaginar, es la que nos va a permitir que la entidad se active dentro del listado de entidades virtuales de Dataverse con solo ponerla a Yes. Esta propiedad puede ser habilitada tanto en nuestras entidades, como en las entidades estándar a través de una extensión.

Is Search Enabled, por otro lado, habilitará nuestra entidad virtual para que se pueda buscar mediante Dataverse search, y solo puede ser habilitada si nuestra entidad tiene la propiedad Allow Row Version Change Tracking a Yes, por lo que aquí contamos con las limitaciones conocidas para esta propiedad. En este enlace te dejo más información sobre el Dataverse search.

Propiedad dataverse auto create en dynamics 365 finance and operations apps

Sincronización de Base de Datos

Una vez habilitado, procedemos a compilar y sincronizar, y es durante este proceso de sincronización cuando «ocurre la magia». Tenemos un nuevo event handler, que se ejecuta después de la sincronización de las entidades, y se encarga de programar el trabajo por lotes que ejecuta la clase CDSVirtualEntityRefreshBatch.

CDSVirtualEntityRefreshBatch

La ejecución de este lote, añadirá nuestra entidad como «Actualización necesaria» al formulario que podemos encontrar en Administración del sistema > Consultas > Entidad virtual > Estado de sincronización de metadatos de entidad virtual.

Virtual entity metadata sync status

Y posteriormente, creará un nuevo lote para ejecutar la clase CDSVirtualEntityAutoCreateBatch que conectará con la instancia de Dataverse linkada a nuestro entorno, y activará nuestra entidad.

CDSVirtualEntityAutoCreateBatch

Una vez finalizado este proceso, ya podemos ir a Dataverse y comprobar que efectivamente, nuestra entidad virtual está disponible para ser utilizada desde cualquier elemento de la Power Platform o desde el API de Dataverse.

Available Finance and Operations Entity

Conclusión

Vuelven a quedar bastante claros los esfuerzos que está realizando Microsoft por integrar Microsoft Dynamics 365 Finance and Operations dentro de la Power Platform. En esta ocasión, nos dan una automatización bastante ultil que nos permite olvidarnos de realizar ciertos pasos manuales y tediosos. Lo más interesante, para mi, de escribir este artículo, no ha sido tanto mostrar la funcionalidad en si, que es bastante sencilla, sino, investigar e indagar en el código, descubriendo que hay una serie de clases, como SysDataverseUtility o las propias mencionadas durante el post, que nos muestran como podemos realizar operaciones sobre las entidades del entorno de Dataverse vinculado, permitiéndonos comprender el funcionamiento de la plataforma, por lo que, si te pica la curiosidad, te animo a dedicar algo de tiempo a revisar todo este código.

A tener en cuenta

Este proceso está disponible en entornos UDE o T2+ a partir de las siguientes versiones:

  • Auto Refresh: PU62 (7.0.7120.170), PU63 (7.0.7198.123), PU64 (7.0.7279.31), o posterior.
  • Auto Create: PU63 (7.0.7198.123), PU64 (7.0.7279.31), o posterior.

También está supeditado a la activación de los siguientes Flights:

  • CDSVirtualEntityAutoRefresh.2
  • CDSVirtualEntityAutoCreate.2
  • CDSVirtualEntityAutoDelete

Por lo tanto, necesitarás habilitarlos en la tabla SysFlighting de tu entorno para que funcione.

1 comment / Add your comment below

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies