
Nube de SAP ALM, la plataforma SAP Application Lifecycle Management en la nube, viene con varios servicios, especialmente en el área Run, que pueden desencadenar eventos.
Estos eventos suelen ser configurables desde la página de configuración del servicio o desde Procesamiento inteligente de eventos servicio.
En algunos casos, necesitamos reenviar eventos o alertas importantes a una aplicación externa. Un ejemplo típico es el creación de un incidente de ServiceNow fuera de SAP Cloud ALM Event.
Servicio de gestión de API externo de SAP Cloud ALM ayuda a reenviar recursos de Cloud ALM, como eventos, a productos de terceros.
A continuación, detallamos los pasos para reenviar algunos eventos seleccionados de SAP Cloud ALM a Jira Cloud y crear tareas a partir de ellos. No se necesita codificación, solo configuración.
Nota: los principios generales y los pasos de configuración descritos en este blog siguen siendo válidos para otras plataformas además de Jira Cloud, como SAP ALM, Github, MS Teams…
Para integrar SAP Cloud ALM con aplicaciones externas, puede crear esta integración dentro de SAP Cloud ALM, utilizando un archivo de asignación de recursos o, para escenarios más avanzados, crear dicha integración fuera de SAP Cloud ALM dentro de Paquete de integración de SAP o su propio servicio externo.
En este ejemplo, confiamos en un archivo de asignación para convertir un evento de Cloud ALM en una tarea de Jira.
Lanzado en el cuarto trimestre de 2022, el formato de asignación de carga útil completa el formato original basado en reglas. Mientras que el formato basado en reglas le permite definir una relación uno a uno entre dos estructuras json planas (no elementos anidados), el formato de asignación de carga útil ofrece un enfoque diferente.
Con el formato de asignación de carga útil, crea una plantilla json que tiene la estructura esperada por la aplicación externa. Se admiten estructuras json complejas con matrices y elementos anidados. Puede insertar en este archivo de plantilla algunos marcadores de posición que se reemplazarán en tiempo de ejecución. El valor de los marcadores de posición proviene del recurso ALM de SAP Cloud ALM, en este caso, un evento. Puede ser por ejemplo, la prioridad del evento, el nombre del servicio…
A continuación se detallan las cuatro secciones principales de un archivo de mapeo de carga útil. Las cuatro secciones contienen el mapeo de carga útil para crear una tarea Jira personalizada (llamada CALMTask) en el proyecto «CAD» de Jira Cloud. Para construir el archivo completo, solo necesita reunir estas cuatro secciones siguiendo el mismo orden que este blog.
La información del encabezado proporciona detalles sobre el contenido del archivo. Los valores son solo texto libre destinado a la documentación. En esta sección indicamos por ejemplo que el origen (recurso interno) es un evento IEP (Intelligent Event Processing) mientras que el destino (recurso externo) es una tarea de Jira.
{ «_información»: { «_versión 1», “_fuente”: “IEP”, “_destino”: “Jira Cloud”, “_name”: “IEP a Jira Cloud”, “_comment”: “Tarea ALM de Jira Cloud – Jira_CALMTask_Payload_Mapping_v1.json” }, |
Se usa un interruptor para reemplazar un marcador de posición por diferentes constantes según el valor recibido del recurso de Cloud ALM. En este ejemplo, SAP Cloud ALM y Jira Cloud no usan los mismos nombres para las prioridades, por lo tanto, usamos un conmutador para convertir las prioridades de situación de evento de SAP Cloud ALM en prioridades de problemas de Jira Cloud.
Se puede hacer referencia al interruptor definido en esta sección más adelante en la siguiente sección («estructura») usando su nombre. Para hacer referencia al interruptor «switchPriority» que hemos definido (ver más adelante), usaremos esta notación: ${SWITCH(cambiarPrioridad,calificación)}
«interruptores»: [ { “name”: “switchPriority”, “cases”: [ { “when”: “FATAL”, “then”: “Highest” }, { “when”: “ERROR”, “then”: “High” }, { “when”: “WARNING”, “then”: “Low” }, { “when”: “INFO”, “then”: “Lowest” } ], «predeterminado»: «Más bajo» } ], |
La sección “estructura” contiene la plantilla del mensaje enviado a la aplicación externa (Jira Cloud). Aquí usamos directamente el Sintaxis de Jira Cloud. Los marcadores de posición se reemplazarán en tiempo de ejecución con valores de SAP Cloud ALM. Por ejemplo: #{subject}, #{rating}, #{eventName}…
Para obtener la lista de posibles marcadores de posición, puede consultar la documentación de ayuda de SAP del recurso SAP Cloud ALM correspondiente, en nuestro caso, este es el Evento-Situación.
Junto con los marcadores de posición, se pueden insertar interruptores cuando se definen en la sección anterior «interruptores».
La sección «estructura» contiene la carga útil de «solicitud», pero también la carga útil de «respuesta», ya que debe devolverse a SAP Cloud ALM. Por ejemplo, SAP Cloud ALM espera recibir el «externalId» del recurso externo (id de la tarea de Jira). El formato de la carga de respuesta depende del tipo de recurso de SAP Cloud ALM (nuevamente aquí está el Evento-Situación). Esta vez, los marcadores de posición utilizados en la respuesta (por ejemplo, #{key}) se resuelven desde la respuesta de la aplicación externa, Jira Cloud en este caso.
Precaución: Notará que el tipo de problema de destino es «CALMTask», que es un tipo personalizado que no se ofrece en Jira Cloud estándar. El nombre y el identificador de los campos personalizados (p. ej. «customfield_10040») son relevantes solo para este problema personalizado específico «Tarea CALMT”. Por lo tanto, debe adaptar este ejemplo a su propio contexto. La identificación del proyecto «CAD» también depende de su propio contexto. Los valores que deben adaptarse a su propio entorno están marcados en rojo.
«estructura»: { «pedido»: { «campos»: { «resumen»: «[Cloud ALM for Operations] #{sujeto}», «Tipo de problema»: { «nombre»: «CALMTarea“ }, «proyecto»: { «llave»: «CANALLA“ }, «descripción»: { “tipo”: “doc”, «versión 1, «contenido»: [ { “type”: “paragraph”, “content”: [ { “text”: “#{rating} – #{eventName}: “, “type”: “text” } ] } ] }, «etiquetas»: [ “CALM”, “#{eventType}”, “#{eventSubType}” ], “cesionario”: { «ID de la cuenta»: «6256cbbba872****“ }, “campo_personalizado_10040«: «#{nombre del evento}», “campo_personalizado_10041«: «#{tipo de evento}», “campo_personalizado_10042“: “#{subtipo de evento}”, “campo_personalizado_10043«: «#{Nombre del Servicio}», “campo_personalizado_10044«: «#{Tipo de servicio}», “campo_personalizado_10045“: “https://www.sap.com”, «prioridad»: { “nombre”: “${SWITCH(switchPriority,rating)}” }, «ambiente»: { “tipo”: “doc”, «versión 1, «contenido»: [ { “type”: “paragraph”, “content”: [ { “text”: “#{workNotes}”, “type”: “text” } ] }, { “tipo”: “párrafo”, «contenido»: [ { “text”: “serviceId: #{serviceId}”, “type”: “text” } ] } ] } } }, «respuesta»: { “estadoexterno”: “POR HACER”, “externalUrl”: “#{self}”, “llave externa”: “#{llave}”, “identificación externa”: “#{id}” } }, |
En esta sección, indicamos en qué tipo(s) de evento(s) se debe aplicar el mapeo. En este caso, queremos activar la creación de la tarea de Jira cuando se crea la situación de evento en el lado de SAP Cloud ALM (tipo de evento «SITUACIÓN DE EVENTO. CREADA»).
“Mapeo de tipo de evento”: { “_comment”: “Mapeo de tipo de evento específico”, “mapeos de operaciones”: [ { “eventType”: “EVENT-SITUATION.CREATED”, “operation”: “POST”, “responseRoot”: “” } ] } } |
En este ejemplo, creamos un tipo de problema de Jira «CALMTask» a partir de SAP Cloud ALM Event-Situation. “CALMTask” es una costumbre Tipo de incidencia de Jira que debe configurarse previamente del lado de Jira.
Para crear un ejemplo de trabajo, es obligatorio hacer referencia al tipo de problema de Jira correcto y adaptar el archivo de carga de mapeo en consecuencia. Está fuera del alcance de este blog describir las operaciones paso a paso para configurar un tipo de problema de Jira personalizado; sin embargo, el configuración de un tipo de problema de Jira personalizado es muy simple y se puede hacer desde la interfaz de usuario principalmente con arrastrar y soltar.
Está bien crear una tarea de Jira a partir de una situación de evento, pero podría ser interesante cerrar automáticamente la situación de evento cuando se completa la tarea de Jira.
Para cerrar una situación de evento de SAP Cloud ALM desde el exterior, podemos usar la API pública dedicada Situaciones de eventos de SAP Cloud ALM.
Aunque esto está más allá del alcance de este blog para detallar dicha integración en el lado de Jira, una forma de implementar la situación de evento cercana es confiar en Automatización de Jira.
A continuación, un ejemplo de automatización manual simple para cerrar el Evento-Situación desde una Tarea de Jira.
Aquí, la automatización de Jira no se activa automáticamente, sino que se activa manualmente desde la tarea de Jira.
En esta sección encontrará los elementos de configuración; se deben configurar tres servicios diferentes:
En el servicio de destino BTP, creamos un destino para llegar a la interfaz de Jira Cloud (REST api v3 en este ejemplo).
Nos conectamos a Jira Cloud con autenticación básica y token de API.
En SAP Cloud ALM External API Management, necesitamos configurar tres objetos:
En el servicio de gestión de API externa de SAP Cloud ALM, creamos un webhook que hace referencia al destino BTP.
La ruta del webhook («/rest/api/3/issues/») apunta a la versión de API correcta.
Usamos el tipo de recurso externo «Incidente» por el momento; en el futuro, podría introducirse un tipo de recurso dedicado «Tarea».
Creamos el archivo de mapeo de tipo «Basado en carga útil» (ver arriba).
Creamos la suscripción «incorporada» que hace referencia al webhook, así como al archivo de mapeo que creamos anteriormente.
El tipo de suscripción debe ser «Incorporado», ya que queremos confiar en el mecanismo de mapeo interno de SAP Cloud ALM.
La mayoría de los casos de uso de monitoreo de SAP Cloud ALM están integrados con Procesamiento inteligente de eventos y podría ser utilizado como productor de Evento-Situación. Tenga en cuenta que los pasos de configuración pueden diferir ligeramente según el caso de uso elegido.
En este ejemplo configuramos un Evento-Situación en Servicio de supervisión de procesos empresariales SAP Cloud ALM.
Primero debemos seleccionar en el menú de la derecha el KPI que queremos configurar. Debe ser un KPI recopilado por la infraestructura.
Luego, necesitamos crear un evento a partir de este KPI para seleccionar filtros específicos (valores de características específicas) y umbrales que deberían producir una Situación-Evento.
Una vez creado y activado el evento, debemos seleccionar la suscripción de Jira que configuramos previamente en el servicio de gestión de API externa.
Esto está listo 👍, la próxima vez que se cree este evento, activará la creación de una Jira CALMTask.
Nota: se podría generar una alerta de Cloud ALM a partir del mismo evento para mostrarla en la interfaz de usuario de SAP Cloud ALM Business Monitoring.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073