Es el CDS el futuro de las apps de Finance and Operations?

Adrià the medium: what will happen with the CDS?
Adrià the medium: what will happen with the CDS?

Después del MBAS del miércoles pasado estoy pensando más en esto. Llegará el día que los datos Dynamics 365 for Finance and Supply Chain Management estén de forma nativa en el CDS?

Al ver la sesión de Ryan Jones «What’s new in the Common Data Service«, me planteo si esa debería ser la pregunta, o debería ser cuándo estará de forma nativa en el Common Data Service?

El Common Data Service

El CDS es una plataforma que nos permite guardar datos y que la usan distintas business applications. Pero no es sólo eso, mirad esta imagen:

The CDS
CDS (screenshot from Ryan Jones session on MBAS)

Podríamos poner MSDyn365FO encima de esa plataforma verdad? Soporta bases de datos relacionales, almacenamiento, reporting, workflows, seguridad, etc. Por supuesto esto no se haría de un día para otro, pero igual algo de forma progresiva. Como lo que tendremos con las virtual entities de FnO en CDS!

Con las virtual entities todavía no tendremos los datos de Finance y SCM en CDS, porque las virtual entities:

Virtual entities enable the integration of data residing in external systems by seamlessly representing that data as entities in Common Data Service, without replication of data and often without custom coding.

https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/virtual-entities/get-started-ve

«Sin replicación de datos». Cuando se accede a una virtual entity en el Common Data Service su estado se obtiene de forma dinámica del sistema externo.

The CDS capabilities
CDS + Operations (screenshot from Ryan Jones session on MBAS)

Como podemos ver en la imágen todas las data entities públicas estarán de forma nativa en el CDS. Esto quiere decir que podremos usar las capacidades de la Power Platform para Finance and Operations tan rápido y fácil como las usan nuestros compañeros de Customer Engagement. Por lo menos para las entidades públicas.

Si necesitáramos que los datos estuvieran físicamente en ambas aplicaciones tendríamos que usar Dual Write. Recordad que Dual Write sincroniza los datos entre Finance and Operations y Customer Engagement/CDS en tiempo casi real.

CDS + Operations: Under the Hood
CDS + Operations: Under the Hood (screenshot from Ryan Jones session on MBAS)

Si queréis saber un poco más sobre el Dual Write podéis echarle un vistazo a la sesión «And finally… Dual Write!» que hicimos Juan Antonio y yo en el Dynamics 365 Saturday de Madrid de 2019. Está un poquito anticuada ya porque en este año que ha pasado se ha añadido bastante funcionalidad pero da una idea de lo que se puede conseguir.

¿Lo vamos a ver?

Quién sabe, sólo estoy especulando, yo soy un minundi pero no puedo dejar de pensar en que Microsoft está invirtiendo mucho en el CDS. Y que las apps de Finance and Operations son el único producto de Dynamics 365 cuyos datos no residen en el Common Data Service.

Además estamos viendo como algunas funcionalidades de FnO están siendo replicadas y luego extendidas en el CDS como, por ejemplo, Dynamics 365 Human Resources o Dynamics 365 Project Operations. Esto está creando un problema, porque ahora mismo tienes que crear una integración entre las dos aplicaciones si quieres tener algún tipo de intercambio de datos. FnO en el Common Data Service los solucionaría.

Esto también crea un poco de confusión a los clientes, que piensan que esa integración existe de fábrica, cuando no es así. El nombre de los productos lo sugiere, pero no pasa.

Debemos tener en cuenta que esto no pasaría en el próximo año, ni en los dos ni en los tres siguientes. Esto sería algo a largo plazo. No sé cómo será con las aplicaciones de CDS, pero las de Dynamics 365 for Finance y SCM tienen una cantidad bien hermosa de tablas, y migrar todo al Common Data Service seguro que es una cantidad de trabajo enorme.

¿Y qué pasaría con las herramientas de desarrollo? ¡También tendrían que cambiar! Veremos hacia donde se dirige el producto y nosotros con él, pero seguro que ya no podemos pensar en Finance and Operations sin el CDS.

Azure hosted build para Dynamics 365 Finance & SCM

¡Contemplad #XppGroupies! ¡El día que tanto hemos estado esperando ha llegado! Las Azure hosted builds (me cuesta mucho decir Build hospedada en Azure) ya están en preview pública con el PU35!! Ya podemos dejar de preguntarle a Joris cuando estará disponible, porque ya lo está!! Leed los Docs!!

He podido escribir esto porque, gracias a Antonio Gilabert, hemos podido probarlo durante la preview privada en Axazure durante unos meses. Y por supuesto gracias a Joris por habernos invitado a la preview!

Azure hosted builds
Cabalgando los Azure Pipelines por Caza Pelusas

¿Qué significa esto? No necesitamos ya la VM para ejecutar pipelines! Es broma, sí la necesitamos! Si estámos ejecutando tests o sincronizando la DB como parte de nuestro pipeline todavía necesitamos la VM. Pero podemos mover las builds de CI al agente de Azure.

También puedes leer mi guía sobre MSDyn365FO y Azure DevOps ALM.

Recordar que esto esta en preview privada. Si queréis uniros a la preview primero necesitáis ser parte del Insider Program donde podéis uniros al «Dynamics 365 for Finance and Operations Insider Community«. Una vez invitados deberías ver un nuevo proyecto en LCS llamado PEAP Assets, y dentro de la Asset Library en la sección Nuget package encontraréis los nugets.

Sigue leyendo «Azure hosted build para Dynamics 365 Finance & SCM»

LCS DB API: automatizando la copia de la DB de Prod a Dev

El nuevo endpoint de la LCS DB API para exportar una base de datos ha sido publicado! Con él ya tenemos una forma de automatizar el refresco de datos de tu Dynamics 365 FnO desde producción a un entorno de desarrollo Tier 1.

LCS DB API Automation
LCS DB API Automation

Puedes aprender más acerca de la LCS DB API leyendo estos posts que escribí hace un tiempo. Es una buena idea echarles un vistazo porque hay algunos pasos que doy por explicados:

También puedes leer la guía completa sobre MSDyn365FO y Azure DevOps ALM.

Recordar que esto esta en preview privada. Si queréis uniros a la preview primero necesitáis ser parte del Insider Program donde podéis uniros al «Dynamics 365 for Finance and Operations Insider Community«. Una vez invitados a la organización de Yammer podéis pedir acceso al grupo «Self-Service Database Movement / DataALM» donde recibiréis toda la info necesaria para uniros a la preview y activar la funcionalidad en LCS.

Sigue leyendo «LCS DB API: automatizando la copia de la DB de Prod a Dev»

¿Compruebas los warnings del compilador de Dynamics 365?

Los avisos del compilador. Warnings. No son errores, sólo warnings. Puedes ignorarlos totalmente y olvidarte de ellos, verdad? Bueno, espero que no lo estés haciendo.

«¡Pero si incluso en el código estándar de Microsoft aparecen warnings!, podrías decir. Y eso es totalmente cierto, pero no es tu código, es el de Microsoft. Si una funcionalidad que usas se rompe porque Microsoft no tuvo cuidado de los warnings, puedes abrir un soporte y arreglarlo es el trabajo de Microsoft. Si tu código rompe alguna funcionalidad porque pasaste de los warnings, es tu trabajo arreglarlo, y tu cliente va a quererlo igual de rápido que tu querrías que Microsoft arreglara su error.

Por esto es por lo que deberíamos estar avisados de los warnings (badum tss). Ay… en inglés tenía «más gracia».

Sigue leyendo «¿Compruebas los warnings del compilador de Dynamics 365?»

Messaging API: añadir acciones a la barra de mensajes

Con la última versión 10.0.10 de Dynamics 365 for Finance and SCM nos llega una feature nueva que nos permitirá añadir acciones a la barra de mensajes usando la Messaging API, como lo que teníamos en AX2012 con la clase SysInfoAction.

Recordad que esto está en la última versión de preview. Podéis acceder a las previews si os apuntáis al Dynamics 365 Insider Program.

Sigue leyendo «Messaging API: añadir acciones a la barra de mensajes»

1 2 3 Power Mime!

Vamos ya hacia la tercera semana en casa, y con unas cuantas más por delante necesitamos algo de entretenimiento.

La semana pasada Eva me propuso hacer una app con la Power Platform para jugar a juegos de mímica con mis compañeros de Axazure. Ella la diseñaría gráfica y funcionalmente y yo haría el (no) código. ¡Y eso es lo que hicimos!

1 2 3 Power Mime!
1 2 3 Power Mime!
Sigue leyendo «1 2 3 Power Mime!»

Descomprimir (ZIP) un Stream en Dynamics 365 FnO

Ya que Microsoft Dynamics 365 for Finance & Operations es un erp en la nube, no podemos trabajar con archivos en las unidades del AOS. Era bastante habitual tener integraciones con ficheros en AX, donde tenías un archivo en una carpeta compartida y se procesaba.

Por supuesto que todavía podemos trabajar con ficheros, por ejemplo desde una cuenta de almacenamiento en Azure como muestra Miquel Vidal en su blog o con la herramienta Recurring Integrations Scheduler.

Descomprimir Streams de .NET

La mayor parte de las funcionalidades que consisten en cargar o descargar ficheros de MSDyn365FO usan Streams de .NET, normalmente de la clase hija MemoryStream.

Así que, cómo descomprimimos uno de estos archivos ZIP? Por ejemplo, el formato de diario de pago de proveedores ISO20022 está comprimido. ¿Qué pasa si necesitamos el contenido del ZIP?

Pues tendremos que usar la clase ZipArchive del namespace System.IO.Compression, y es muy, muy sencillo. Por ejemplo:

Edit: este código sólo es válido para un ZIP que contenga un único fichero. Si el archivo comprimido tiene más de un archivo hay que procesar cada Stream dentro del while.

Tenemos que copiar el stream unzippedStream (que en realidad es un DeflateStream) a un MemoryStream (que tiene que estar inicializado) antes de hacer el return.

Recordad que para acceder a una colección de .NET tenemos que usar un enumerator para poder recorrer los elementos. Si no véis el método usando la notación de punto escribidlo a mano. Escribir código de .NET en X++ todavía no está afinado del todo…

Un aviso sobre los entornos self-service: actualizar con cuidado

Parece que al fin ha llegado el día y todos los nuevos proyectos de LCS traen de serie entornos Tier 2+ de tipo self-service. Si quieres saber un poco más acerca de ellos puedes leer este post que escribí sobre los entornos service fabric/self-service en Microsoft Dynamics 365 for Finance and Operations.

Los dos últimos proyectos que hemos empezado en Axazure están en self-service y también hemos tenido la migración de un cliente que estaba en la infraestructura normal. Así que ya es hora de que os avise sobre una cosa terrible…

Un aviso sobre los entornos self-service: actualizar con cuidado 1
Sigue leyendo «Un aviso sobre los entornos self-service: actualizar con cuidado»