Desde la versión 10.0.12 de Dynamics 365 for Finance and Operations podemos usar las entidades de FnO como Virtual Entities de Dataverse. Esto nos permite crear Power-Apps de tipo model-driven para Finance and Operations sin necesidad de copiar datos entre Finance and Operations y Dataverse. Esto abre muchos escenarios y nuevas formas de integrar Finance/Supply Chain Management con Customer Engagement.

Si queréis saber más sobre la configuración y uso de las Virtual Entities para FnO podéis:

Virtual Entities de Dataverse

Las Virtual Entities del Dataverse representan datos de otros sistemas en el Common Data Service y soportan todas las operaciones CRUD. En nuestro caso las Virtual Entities son una representación de las data entities públicas de FnO.

Cuando configuramos las Virtual Entities de CDS en FnO tenemos que activar las que queramos usar, y una vez activadas aparecerán como una entidad en el Dataverse.

¿Sustituyen las Virtual Entities al Dual-Write? No, unas y otro tienen distintos propósitos y cubren distintos casos de negocio. La diferencia entre usar Virtual Entities o Dual-Write es que las Virtual Entities no duplican datos y Dual_Write sí lo hace. En cambio para las Virtual Entities existe una API web en tiempo real que hace consultas desde y hacia las entidades de FnO.

Acciones en entidades de FnO

Algunas de las entidades de FnO tienen unos métodos espciales que pueden ejecutarse con una llamada de OData, llamados OData actions. Estos métodos tienen que estar decorados con el atributo SysOdataAction y se pueden usar en una acción de Flow:

Acción OData en Flow

Acciones OData como acciones de Dataverse

Las acciones de Dataverse son operaciones que también pueden crear, actualizar o borrar registros, como las de FnO. En la imagen de abajo vemos ambas con sus conectores para la misma entidad:

Acción OData y de Virtual Entities en CDS
Acción OData y de CDS

Como podemos ver estamos llamando a la acción AXZPostSalesOrder de la entidad AXZSalesOrderHeadersV2. Esta entidad es un duplicado de la estándar de la cabecera de pedidos de venta en la que he añadido el siguiente método:

[SysODataAction('AXZPostSalesOrder', false)]
	public static str postSalesorder(SalesId _salesId)
    {
        SalesFormLetter salesFormLetter;
        salesTable		salesTable;
        salesTable		= SalesTable::find(_salesId);
        salesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
        
		salesFormLetter.update(salesTable, systemDateGet(), SalesUpdate::All, AccountOrder::None, NoYes::No, NoYes::Yes);
        return CustInvoiceJour::findRecId(salesFormLetter.parmJournalRecord().RecId).InvoiceId;
    }

Esta acción simplemente registrará una factura de un pedido de venta abierto, algo que puede ser útil llamar desde CE o una Power App mientras visitas un cliente. Y gracias a las Virtual Entities ¡podemos llamarlo con el conector de Dataverse!

Un ejemplo

En el siguiente ejemplo voy a mostrar como un pedido de Dynamics 365 FnO se registra usando una acción de Dataverse desde Flow. Por ejemplo este pedido de venta:

Pedido de venta abierto

Podéis ver que está abierto. He creado una canvas app con una DataTable que muestra todas los pedidos abiertos de la empresa USMF usando la Virtual Entity de Dataverse:

Pedidos de venta de FnO en una Power App usando el conector de CDS

La app tiene un botón que llama a un Flow que obtiene el registro y llama a la acción de Dataverse:

Acción de CDS

Selecciono un pedido de venta y registro la factura dándole al botón en la Power App:

Registrar pedido desde la Power App

Tenemos que esperar a que termine de ejecutarse el Flow…

¡Y listo! Cuando termina (ha hecho un retry y por eso sale el check en naranja) podemos volver a Dynamics 365 y ver que ¡se ha registrado la factura del pedido de venta!

Pedido registrado desde la Virtual Entity

Con las Virtual Entities obtenemos una nueva herramienta que no sólo nos permite acceder a los datos de Finance and Operations sinó también ejecutar procesos de negocio. Cada vez tenemos más herramientas para integrar el ERP y CRM con menos esfuerzo y mejores resultados!

¡Suscríbete!

Recibe un correo cuando se publique un nuevo post
Author

Microsoft Dynamics 365 Finance & Operations technical architect and developer. Business Applications MVP since 2020.

Write A Comment

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

ariste.info