Cómo no romper los límites, cómo crear una buena arquitectura y cómo hacer un buen mantenimiento

Azure IoT y Project Online (parte II): Generar una “Issue” en Project Online

Nos habíamos quedado revisando las métricas de la cola en el “Service Bus” y comprobando que llegaban peticiones a la misma. Pues bien,  partir de este punto, podríamos interactuar con Project Online mediante una LogicApp que se disparara al recibir un elemento en la cola.

Sin embargo, no se dispone actualmente de suficiente funcionalidad para el ejemplo que estamos planteando. Sí se podría crear un proyecto nuevo o una tarea en un proyecto, por ejemplo.

Azure Functions

En nuestro caso, vamos a crear una “Azure Function”, que se ejecute cada vez que entre un elemento nuevo en la cola “windalerts”. Partiendo de que tenemos configurado el servicio “Azure Functions”, para añadir una nueva función pulsaremos  el botón “+” y, de los diferentes tipos de triggers que ofrece el sistema, se debe localizar “Service Bus Queue trigger”, tal y como se muestra en la imagen:

En nuestro caso, vamos a utilizar c#, así que pulsaremos en el enlace a dicho lenguaje y se mostrará el formulario para crear la nueva función.

Además del nombre que se le va a dar a la función, lo importante es seleccionar la conexión al service bus. Si no apareciera en el desplegable correspondiente, se debe pulsar en el enlace “nuevo” y se mostrará un formulario parecido a este

Aquí se debe seleccionar el espacio de nombres del service bus y la directiva (no debería aparecer otra que la que se muestra en la imagen).

Finalmente, se debe seleccionar el nivel de permisos y el nombre de la cola que va a disparar la función (“windalerts”, no nos confundamos).

Ya solo nos queda añadir las dll’s de CSOM para SharePoint y Project Online en la carpeta bin de la aplicación y referenciarlas. A partir de este momento, podemos hacer uso de estas apis.

No voy a entrar al detalle del código, simplemente indicar que deserializa el JSON del mensaje que recibe como parámetro para obtener sus propiedades y, a partir de ahí, se obtiene el contexto de la instancia de pwa que se va a utilizar.

A continuación, se accede al proyecto que gestiona los dispositivos, se obtiene la url de su sitio de SharePoint y se crea un nuevo elemento en la lista de “Issues” con los datos recibidos. Puesto que se trata de una demostración, los valores de la instancia de pwa, GUID del proyecto, usuarios y contraseñas están directamente en el código, aunque por seguridad no sería la opción más recomendable.

El resultado es el siguiente

Y este sería el código completo de la función:

 

mm

Sobre José Rafael García Rodrigo

Soy un profesional con 17 años de experiencia en tecnologías Microsoft, iniciando mi carrera como programador de .Net y SharePoint y evolucionando hacia la consultoría y definición de soluciones en los últimos años. Actualmente, acompañamos a las organizaciones en su Transformación Digital aprovechando todos los servicios que ofrece Microsoft en M365 y Power Platform. Ayudamos a las empresas a determinar el grado de madurez tecnológica en el que se encuentran y diseñamos conjuntamente una hoja de ruta para su transformación digital a largo plazo con acciones como: Gobernanza y Adopción de M365, cumplimiento normativo, seguridad de la plataforma, implementación de procesos, inteligencia artificial aplicada para el descubrimiento y clasificación de documentación, diseño e implementación de soluciones Low-Code o mejora de la experiencia del empleado a través de la suite Microsoft Viva.
Esta entrada ha sido publicada en Azure, IoT. Enlace permanente.
ENCAMINA, piensa en colores