Deprecated: Optional parameter $entity_id_or_bundle declared before required parameter $client is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1034

Deprecated: Optional parameter $title declared before required parameter $field_rel is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1503

Deprecated: Optional parameter $id declared before required parameter $field_rel is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1503

Deprecated: Optional parameter $selector declared before required parameter $field_rel is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1503

Deprecated: Optional parameter $selector declared before required parameter $dialog_type is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1536

Deprecated: Optional parameter $settings declared before required parameter $dialog_type is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/brightcove/brightcove.module on line 1536

Deprecated: Optional parameter $feed_nid declared before required parameter $context is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/feeds/feeds.module on line 226

Deprecated: Optional parameter $path declared before required parameter $arg is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/i18n/i18n.module on line 239

Deprecated: Optional parameter $dropbox declared before required parameter $save_lineage is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/hierarchical_select/hierarchical_select.module on line 1388

Deprecated: Optional parameter $delta declared before required parameter $element is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/radioactivity/radioactivity.field.inc on line 432

Deprecated: Optional parameter $path declared before required parameter $langcode is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/ckeditor_link/ckeditor_link.module on line 328

Deprecated: Optional parameter $item declared before required parameter $complete_form is implicitly treated as a required parameter in /var/www/html/sites/all/modules/contrib/menu_attributes/menu_attributes.module on line 168
Cómo enviar mensajes a Microsoft Teams | InterSystems Developer Community |
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)😉