Muy buenas familia, en el artículo de esta semana vamos a ver como poder ejecutar un flujo de Power Automate desde una lista o biblioteca de documentos de SharePoint mediante un botón.
Para ello lo primero que vamos a hacer es crearnos una nueva columna de tipo texto a la que posteriormente le daremos formato para modificar su comportamiento y apariencia.

Sobre la nueva columna creada pulsamos sobre Dar formato a esta columna

{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "{\"id\": \"aab94ec6-d909-41c9-b9c4-32aba86d679b\" }"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"
},
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "Flow"
},
"style": {
"padding-right": "6px"
}
},
{
"elmType": "span",
"txtContent": "Lanzar Aviso"
}
]
}
A través de este JSON, estamos indicando que va a ser de tipo botón y cuya acción será ejecutar un flujo de Power Automate, donde el Id del flujo irá en actionParams,
Una cosa importante aqui es que el flujo debe estar en el entorno Defautl, que es donde SharePoint irá a buscar ese Id.

En este caso utilizamos el trigger de On Selected File (On Selected Item para listas). A través de este trigger, nos viene el id del elemento seleccionado cuando pulsamos sobre el botón, por lo que recuperamos el resto de propiedades con la acción de Obtener fichero (solo propiedades) para que en este caso lancemos un aviso cuando la columna estado tenga valor Logrado para mandar un correo.

Para poder hacer que el botón sea condicional a través de otra columna, podemos usar la propiedad style para ocultar dicho elemento. Preguntaremos sobre la columna Estado para solo permitir mostrar el botón cuando este tiene estado Lograda,
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer",
"visibility": "=if([$Estado] == 'Lograda', 'visible', 'hidden')"
},
Por lo que el JSON completo queria así:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "button",
"customRowAction": {
"action": "executeFlow",
"actionParams": "{\"id\": \"aab94ec6-d909-41c9-b9c4-32aba86d679b\" }"
},
"attributes": {
"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"
},
"style": {
"border": "none",
"background-color": "transparent",
"cursor": "pointer",
"visibility": "=if([$Estado] == 'Lograda', 'visible', 'hidden')"
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "Flow"
},
"style": {
"padding-right": "6px"
}
},
{
"elmType": "span",
"txtContent": "Lanzar Aviso"
}
]
}
Hasta la próxima!


