Artículo
· 3 mar, 2024 Lectura de 5 min

Cómo enviar mensajes a Microsoft Teams

Hola comunidad,

El objetivo de este artículo es explicar como crear mensajes entre IRIS y Microsoft Teams.

En mi empresa, tenermos que monitorear mensajes de error, y usamos la clase Ens.Alerts para redireccionar esos mensajes a través de un Business Operation que envía un email.
El problema está en que enviamos esos errores a una cuenta de soporte donde habían muchos emails. Queremos algo específico para un específico equipo.

Por lo que investigamos como hacer que esos mensajes lleguén al equpo de desarrollo directamente y ellos pordrían tener, en tiempo real, una notificación de un error en producción. 
En nuestra empresa usamos Microsoft Teams como herramienta corportaiva, por lo que nos preguntamos: ¿Cómo podemos hacer que esos mensajes lleguen al equipo de desarrollo de IRIS?

Pasos previos

Por favor, despliegua para saber como configurar vuestro Teams con la app Incoming Webhook.

 
Pasos previos

Nota: El enlace Webhook está divido en dos partes. Servidor y URL, recuerda esto cuando vayas a configurar el componente.

https://YOURCOMPANY.webhook.office.com/webhookb2/40cc6704-1bc5-4f87-xxxx-xxxxxxxxf@5xxxxxa-643b-47a3-xxxxx-fc962cc7cdb2/IncomingWebhook/6f272d796f1844b8b0b57b61365f8961/2ff46079-ee4a-442b-a642-dc418f6c67ee
Servidor: YOURCOMPANY.webhook.office.com
URL: /webhookb2/40cc6704-1bc5-4f87-xxxx-xxxxxxxxf@5xxxxxa-643b-47a3-xxxxx-fc962cc7cdb2/IncomingWebhook/6f272d796f1844b8b0b57b61365f8961/2ff46079-ee4a-442b-a642-dc418f6c67ee

Llamando a la API webhook

La aplicación de webhook entrante admite las conexiones de tarjetas Office 360. Puedes crear las tarjetas usando el diseñador de adaptivecard

Por lo que, he diseñado la tarjeta para mostrar un mensaje de error (Ens.AlertRequest)

 
AdaptiveCard for Ens.AlertRequest

Usando este esquema, puedes crear el mensaje usando los mensajes de St.Teams como este.

set class=##class(St.Teams.Msg.Adaptive.Request).%New()
set class.Type = "message"
set attach = ##class(St.Teams.Msg.Adaptive.Attachment).%New()
set content = ##class(St.Teams.Msg.Adaptive.Content).%New()

set container = ##class(St.Teams.Msg.Common.Item).%New()
set container.Type = "Container"
set item1=##class(St.Teams.Msg.Common.Item).%New()
set item1.Type = "TextBlock"
set item1.Text = "Unhandled error"
set item1.Weight = "bolder"
set item1.Size = "Medium"
set item2=##class(St.Teams.Msg.Common.Item).%New()
set item2.Type = "TextBlock"
set item2.Text = "St.Teams.BO.MainProcess"
set item2.Weight = "bolder"
set item2.Size = "small"
set item2.IsSubtitle = 1
set item3=##class(St.Teams.Msg.Common.Item).%New()
set item3.Type = "TextBlock"
set item3.Text = "ERROR <Ens>ErrFTPListFailed: 'Unable to open data connection to 127.0.0. on port 8080',código=425)"
set item3.Wrap = 1
set factSet=##class(St.Teams.Msg.Common.Item).%New()
set factSet.Type = "FactSet"
set factItem1 =##class(St.Teams.Msg.Common.FactItem).%New()
set factItem1.Title = "SessionId"
set factItem1.Value = "111"
set factItem2 =##class(St.Teams.Msg.Common.FactItem).%New()
set factItem2.Title = "Time"
set factItem2.Value = "2024-02-28 11:00:15"
do factSet.Facts.Insert(factItem1)
do factSet.Facts.Insert(factItem2)

do container.Items.Insert(item1)
do container.Items.Insert(item2)
do container.Items.Insert(item3)
do container.Items.Insert(factSet)

do content.Body.Insert(container)
set attach.Content = content
do class.Attachments.Insert(attach)

Creará el Json para llamar al webhook. Pero queremos crear el mensaje desde un mensaje Ens.AlertRequest, la mejor manera es usando un Data Transformer.

Entonces, la regla en tu Ens.Alert debería de ser como esto

Transformará el Ens.AlertRequest usando el St.Teams.DT.EnsAlertToAdpativeRequest y lo enviará a St.Teams.BO.Api.Teams

Entonces recibirás el mensaje directamente en tu grupo de Teams

Espero que sea tan util como ha sido para nosotros. 

Comentarios (4)2
Inicie sesión o regístrese para continuar

¡Suerte con tu artículo en el concurso de artículos técnicos en inglés, Kurro!! Ya he visto que lo has presentado 🙌

Si os animáis los demás... tenéis hasta el día 17 para publicar un artículo en inglés con el tema "Tutoriales de InterSystems IRIS".

Toda la info aquí: Concurso de Artículos Técnicos en Inglés: Tutoriales de InterSystems IRIS (2024)😉