Usuarios de aplicación en Power Platform

Los usuarios de aplicación, también conocidos como identidades de servicio o cuentas de servicio, son un tipo de cuenta utilizada en entornos de software y plataformas en la nube para permitir que las aplicaciones y scripts se autentiquen y realicen acciones de manera automática. Estas cuentas son diferentes de las cuentas de usuario tradicionales que están diseñadas para individuos. Aquí están los aspectos clave que definen a un usuario de aplicación:

Sigue leyendo Usuarios de aplicación en Power Platform

Descargar Dynamics Plugin Registration Tool

Plugin Registration Tool es una utilidad específica de Microsoft Dynamics CRM (ahora Microsoft Dynamics 365) que se usa para registrar, administrar y depurar plugins. Los plugins en Dynamics CRM son componentes personalizados que se ejecutan dentro del contexto de la plataforma para extender o modificar su comportamiento estándar. Por ejemplo, puedes escribir un plugin que se active automáticamente cuando se crea un nuevo registro en CRM y realice ciertas operaciones, como enviar un correo electrónico o validar la información del registro. La herramienta de registro de plugins ayuda a los desarrolladores a subir y configurar estos plugins dentro de la aplicación CRM.

En este artículo vamos a ver como descargarlo usando Power Shell.

Sigue leyendo Descargar Dynamics Plugin Registration Tool

Como crear un formulario de creación rápida en Power Platform y D365 CRM

En esta entrada vamos a ver como crear un formulario de creación rápida (o Quick Forms en ingles). Lo que vamos a ver es valido para las aplicaciones basadas en modelo, por lo tanto, servirá para una Model Driven de Power Platform o para Dynamics 365 CE (aka CRM).

Los formularios de creación rápida (como su nombre indica) son un formulario básico que nos permite crear un registro de una entidad determinada. Por ejemplo, en la siguiente imagen se puede ver como se ven los formularios de creación rápida, con datos obligatorios de la entidad, y donde podemos trabajar sin necesidad de navegar a otra pantalla.

Imagen donde se muestra como se ven un formulario de creación rápida. El formulario aparece a la derecha de la pantalla, sin necesidad de navegar a otro formulario.
Sigue leyendo Como crear un formulario de creación rápida en Power Platform y D365 CRM

Dataverse elastic tables

Por fin velocidad en Dataverse gracias a Dataverse elastic tables.

Si has trabajado con Dataverse, ya sea con Power Platform o con Dynamics 365 te habrás dado cuenta que ofrece muchas cosas buenas, pero que la velocidad no sería una de ellas. Sobre todo si lo comparas con otras bases de datos. Vale, no es exactamente lo mismo, Dataverse es mas que simplemente persistir datos, pero a veces necesitas un poco de «chicha». En la operativa diaria de la aplicación no se nota tanto, pero cuando tenemos que hacer cargas de datos o trabajar con una volumetría alta donde has de responder en tiempos bajos, las velocidades que ofrece Dataverse nos hace sufrir como desarrolladores.

Sigue leyendo Dataverse elastic tables

Business Central en nuestro equipo local con Docker

Una buena opción para hacer las primeras pruebas de nuestros desarrollos sobre Business Central es probar estos en un entorno local (como harías con otro tipo de desarrollos), pero, ¿Cómo hago para tener un Business Central en mi equipo?. Muy sencillo, usando Docker.

En este artículo te explico como configurarlo todo para que puedas hacerlo.

Sigue leyendo Business Central en nuestro equipo local con Docker

Como consumir una API de Business Central

Es mas que probable que si estas trabajando en expansiones de Business Central o en integraciones donde BC esté involucrado, en algún momento tengas que compartir o insertar datos desde un punto externo. Para ello, tenemos el objeto Page del tipo API, que nos permite exponer una API para consumir o insertar datos. Vamos a ver como consumir esta API.

Sigue leyendo Como consumir una API de Business Central

Pasar el contexto de formulario y XRM de Dynamics 365 a un WebResource

Dynamics 365 CE permite muchas formas distintas para poder extender su funcionalidad y adaptarla a tus necesidades. Una de ellas es poder añadir un recurso web y mostrarlo en un formulario. Esto nos va a permitir crear nuestro propio HTML que se mostrará dentro de Dynamics.

En estos casos nos puede pasar que necesitemos mostrar en nuestro recurso web algún dato que se recupere del propio Dynamics.

Cuando estamos en el lado de cliente, Dynamics nos ofrece el objeto XRM y el FormContext para poder realizar acciones sobre los objetos del propio Dynamics y por lo tanto si tenemos que acceder a cualquier dato del formulario, podemos hacer algo tan sencillo como lo siguiente:

function displayName(executionContext)
{
    var formContext = executionContext.getFormContext(); // get formContext

    // use formContext instead of Xrm.Page  
    var firstName = formContext.getAttribute("firstname").getValue(); 
    var lastName = formContext.getAttribute("lastname").getValue();
    console.log(firstName + " " + lastName);
}

¿Pero que pasa cuando estamos en el contexto de nuestro recurso web? Pues que no tendremos dicho contexto y que por lo tanto, en este caso, no podemos acceder a estos datos. Pero es muy sencillo solucionar esto, vamos a ver como podemos pasar este contexto a nuestro recurso web para poder accederlo.

Sigue leyendo Pasar el contexto de formulario y XRM de Dynamics 365 a un WebResource

Aventuras de un arquitecto: Por que decidí crear una capa de API Rest delante de un D365 Field Service

Hola, el otro día estaba leyendo el libro de Satya Nadella (Pulsa refrescar, lo recomiendo mucho, esta regalado en Amazon) en el que habla de cómo ha liderado el cambio tanto tecnológico como cultural en Microsoft. Una de las cosas que dice es que a él lo que le funciona es la empatía, el ponerse en el lugar de los otros. Así que he reflexionado un poco sobre el tema y he pensado que tal vez, desde la parte tecnológica, a veces no se explica lo suficiente el porqué de ciertas decisiones que tomamos y, por lo tanto, no se están entendiendo desde áreas no técnicas. A veces es por nuestro ego (hablo por mí, por supuesto), el orgullo, la falta de empatía o el hecho de que tal vez no se nos escucha como se debería desde las áreas no tecnológicas. Tal vez la suma de todo.

He pensado que tal vez, explicando algunos casos de decisiones que he tomado con más detalle, sin hablar en idioma puramente técnico. Por lo tanto, voy a iniciar una serie de entradas en el blog en las que hablare de algunas decisiones que he tomado y el por que de estas. Tal vez tenga suerte y consiga un debate interesante.

Sigue leyendo Aventuras de un arquitecto: Por que decidí crear una capa de API Rest delante de un D365 Field Service

7 cosas a tener en cuenta al hacer integraciones con volúmenes altos de datos en Dynamics 365 CE (aka CRM)

En la mayoría de los proyectos en los que he participado y que Dynamics 365 CE (aka CRM) estaba involucrado, en mayor o menor medida, hemos tenido que integrarnos con otros sistemas para cruzar datos entre ambos. Estas son algunas cosas que he ido aprendiendo y que me han ido enseñando (gente que sabe mucho mas de D365CE que yo) a lo largo de estos proyectos. Si estas leyendo esto y tienes algún tip mas, no dudes en ponerlo en los comentarios, !siempre será bienvenido!

Sigue leyendo 7 cosas a tener en cuenta al hacer integraciones con volúmenes altos de datos en Dynamics 365 CE (aka CRM)

Como gestionar errores en Power Automate

No soy yo muy fan del low code, pero oye, a veces me ha tocado usarlo. No negaré que puede llegar a tener sus ventajas en ciertos contextos y si sabemos ver cuando usarlo y cuando no, puede llegar a ser un buen acelerador. Una de las herramientas que se nos ofrece dentro de Power Platform (la plataforma low code de Microsoft) es Power Automate (antes llamados Flow), que a partir de la configuración de «cajitas» nos permite realizar ciertas acciones.

Una de las cosas con las que nos encontramos a tener que crear un flujo, es como gestionamos los datos cuando uno de los pasos que estamos configurando fallan. Cuando algo no va bien, el flujo se detiene y entrando en la página de gestión puedes ver el log y el histórico de ejecuciones, pero eso no suele ser suficiente.

Para tener un poco mas de control, podemos configurar dentro de la tarea que estamos creando, un comportamiento respecto a la ejecución anterior.

De este modo, podemos definir que la acción solo suceda cuando un estado concreto de la acción anterior se cumpla:

Así pues, podemos definir acciones para cuando la acción haya ido mal, y cuando haya ido bien, creando distintos caminos de comportamiento.

A partir de aquí, puedes realizar las acciones que necesites, como dejar un log en una Table Storage, un mensaje en Insights, un correo, etc…

¡Nos leemos!