Actualizar columna SharePoint con Power Automate

InicioPower PlatformActualizar columna SharePoint con Power Automate

Hay un escenario muy habitual que es cuando se requiere actualizar una columna de SharePoint de un elemento con Power Automate, vamos a ver que con una petición HTTP es simple.

Portada Actualizar columna sharepoint

Integración SharePoint con Power Automate

Dentro de Power Automate dispones de varios conectores entre ellos tenemos uno de los reyes que es SharePoint.

Hay varias acciones ya predefinidas como el actualizar elemento que no tiene porque estar mal esta acción pero nos puede pedir que tratemos las demás columnas.

Actualizar elemento SharePoint Power Automate
Actualizando elemento en Power Automate

Problema de actualizar elemento

Como ya te he comentado esta acción que es muy fácil de usar porque ya viene preconfigurado, pero nos podemos encontrar los siguientes problemas:

  • Verificar que las columnas estén vacías (Algunas opción vienen rellenas por defecto).
  • Los campos obligatorios pide tratarlos.

Para los campos obligatorios es cierto que con pasarle el parámetro nuevamente ya no debería de haber problema.

Actualizar campo obligatorio
Campo obligatorio al actualizar elemento en Power Automate

¿ Pero que pasa si el flujo estuvo en espera ? (Por ejemplo en una aprobación) y durante la espera cambio de valor.

Pues que estaría rescatando un valor antiguo de cuando se inicio el flujo.

Así que para evitarnos estos problemas y hacer las cosas bien te propongo lo siguiente.

Actualizar columna SharePoint con Power Automate

Ahora para actualizar de verdad una columna no hay ninguna acción especifica, entonces tienes que usar una petición http de SharePoint (Peticiones a SharePoint personalizadas).

Para ello dispones de la siguiente acción ‘Send an HTTP request to SharePoint’ (Si lo tienes en inglés).

Petición http a sharepoint en Power Automate
La acción personalizada de SharePoint

Petición URI para actualizar columna SharePoint

Esta petición te sirve para todos los casos.

Hay que rellenar el sitio de SharePoint, y el método es de tipo ‘POST’, ahora viene lo interesante:

En la Uri que es el tipo de petición seria lo siguiente:

_api/web/lists/GetByTitle('MiLista')/items(1)/validateUpdateListItem

Debes sustituir los valores en amarillo por el nombre de tu lista y el ID de tu elemento de SharePoint.

Nota: Recuerda que si el nombre de tu lista en un futuro cambia fallará la petición.

En el Curso de Peticiones HTTP SharePoint con Power Automate te enseño a hacerlo por el ID de la lista para que no tengas este problema y muchas mas cosas sobre estas peticiones.

Nota 2: El numero no es necesario que sea fijo, le puedes pasar cualquier valor numérico que hayas rescatado o el propio Trigger (Lanzador) si te lo da.

Actualizar columna de texto u opción en SharePoint

Para actualizar una columna de texto una de opción (de un valor) es lo mismo.

En el Body le especificas la/s columna/s a tratar:

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"MiValorNuevo"
         }
    ]
}

Nota: Recuerda que el valor de FieldName va el nombre interno de la columna de SharePoint.

Y te habrá quedado algo parecido a esto:

Actualizar sharepoint http
Ejemplo de actualizar columna SharePoint en Power Automate

Actualizar columna de valor múltiple

Para actualizar este tipo de columna es bastante sencillo y seria seguir los mismos pasos, pero cambia los valores del body en FieldValue:

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"Marketing;#Tecnología"
         }
    ]
}

Arriba tienes la petición URI.

Actualizar columna de fecha en Power Automate

También debes prestar la atención en el atributo ‘FieldValue’ porque hay que seguir una serie de patrón y pasarle el formato indicado a la fecha.

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"utcNow('dd/MM/yyyy')"
         }
    ]
}

Nota: Recuerda que si dispone hora quedaría algo así:

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"utcNow('dd/MM/yyyy HH:mm')"
         }
    ]
}

Te muestro un ejemplo a continuación:

Petición actualizar columna fecha sharePoint con Power Automate
Ejemplo de actualizar columna fecha

Actualizar columna de tipo persona en Power Automate

Como en los demás casos hay que seguir los mismos pasos y prestar atención al ‘FieldValue’ esta acción es mas especial.

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"[{'Key':'i:0#.f|membership|hola@dominio.com'}]"
         }
    ]
}

Como ves aquí ya encontramos algo mas especial, le estas pasando el id del usuario, lo que esta señalado en amarillo su dominio de usuario, ojo no tiene porque ser el e-mail es el dominio de usuario que lo puedes ver en office.com.

Normalmente coincide con el de e-mail pero pueden ser distintos su e-mail de Outlook y su dominio de usuario.

Te muestro un ejemplo a continuación

Actualizar columna persona sharepoint Power Automate
Ejemplo de actualizar columna persona

Recuerda que la petición URI la tienes arriba al principio del post

Actualizar múltiples columnas de SharePoint.

Para actualizar mas de una columna es muy sencillo, lo hare con 2 columnas de tipo texto.

{
    "formValues":[
        {
            "FieldName":"MiColumna",
            "FieldValue":"MiValorNuevo"
         },
            "FieldName":"MiColumna2",
            "FieldValue":"MiValorNuevo"
         }
    ]
}

Conclusiones

Este tipo de peticiones personalizadas es muy útil para realizar acciones especificas y no hacer otras de mas como la acción de ‘actualizar elemento’ que pide resolver todas las columnas.

Quiero saber más

Si quieres formarte y ser un crack en Power Automate empieza por las bases con el curso de Power Automate desde cero.

Te invito a pasearte por la escuela donde tendrás múltiples cursos de SharePoint, Power Automate y Power Apps para dominar estas herramientas.

Contenido relacionado.