Cuando un flujo de Power Automate se activa al crear un nuevo archivo en una biblioteca de documentos de SharePoint, a menudo necesita actualizar los metadatos del archivo. Si la biblioteca tiene columnas configuradas como Requerir que esta columna contenga información, el flujo puede fallar con un error como Acceso denegado o El elemento no existe. Esto ocurre porque el usuario que crea el archivo no tiene permiso para editar los metadatos de ese archivo en el momento en que se ejecuta el flujo. Este artículo explica por qué falla la verificación de permisos, cómo corregir el diseño del flujo y qué hacer si aparecen errores relacionados.
Conclusiones clave: Cómo solucionar el flujo de Power Automate con metadatos obligatorios
- Lista o biblioteca de SharePoint > Configuración de columna > Requerir que esta columna contenga información: Cuando está habilitado, el creador del archivo debe proporcionar el valor, pero el flujo se ejecuta con una identidad diferente.
- Power Automate > Desencadenador > Usar una condición de desencadenador: Agregue una condición para esperar hasta que los metadatos estén disponibles antes de que el flujo continúe.
- Power Automate > Acción > Actualizar propiedades del archivo: Use el identificador de archivo de la salida del desencadenador, no una acción separada de Obtener propiedades del archivo.
Por qué Power Automate falla con metadatos obligatorios después de crear el archivo
La causa raíz es un problema de sincronización de permisos. Cuando se carga un archivo en una biblioteca de SharePoint, el archivo se crea con permisos mínimos. El creador del archivo tiene la propiedad inicial, pero la acción de actualización de metadatos en Power Automate se ejecuta bajo la identidad del propietario del flujo o una entidad de servicio. Si la biblioteca tiene columnas obligatorias, SharePoint bloquea la actualización de metadatos porque el creador del archivo aún no ha proporcionado los valores requeridos. El flujo intenta actualizar los metadatos, pero el sistema ve el archivo como incompleto y deniega la operación de escritura.
Otra parte del problema es el desencadenador Cuando se crea un archivo. Este desencadenador se activa inmediatamente cuando el archivo aparece en la biblioteca, antes de que se establezcan los metadatos. Si el flujo intenta actualizar las propiedades del archivo en ese momento, la acción de actualización falla porque las columnas obligatorias están vacías. El mensaje de error puede variar: Acceso denegado, El elemento no existe o No se puede completar esta acción.
La solución implica cambiar el desencadenador del flujo o agregar un retraso para que el archivo se cree por completo y los campos de metadatos se completen antes de que se ejecute la acción de actualización.
Pasos para solucionar el flujo: usar una condición de desencadenador o un retraso
Hay dos métodos confiables para solucionar este problema. El primero usa una condición de desencadenador para esperar hasta que los metadatos requeridos estén presentes. El segundo agrega un breve retraso antes de la acción de actualización.
Método 1: Agregar una condición de desencadenador en la columna obligatoria
- Abra su flujo en Power Automate
Vaya a Power Automate > Mis flujos. Seleccione el flujo que falla con metadatos obligatorios. Haga clic en Editar. - Seleccione el desencadenador
Haga clic en el desencadenador Cuando se crea un archivo. En el panel de configuración del desencadenador, haga clic en el menú … y elija Configuración. - Agregue una condición de desencadenador
En el cuadro Condiciones de desencadenador, ingrese la siguiente expresión:@equals(triggerOutputs()?['body/{ColumnInternalName}'], '')Reemplace{ColumnInternalName}con el nombre interno de su columna obligatoria. Por ejemplo, si la columna es Nombre del proyecto, el nombre interno esProject_x0020_Name. Esta condición le dice al flujo que se ejecute solo cuando la columna obligatoria no esté vacía. - Guardar y probar
Haga clic en Guardar. Cargue un nuevo archivo con la columna obligatoria completada. El flujo ahora debería ejecutarse correctamente.
Método 2: Agregar un retraso antes de la acción de actualización
- Abra su flujo
Vaya a Power Automate > Mis flujos y edite el flujo que falla. - Inserte una acción de retraso
Haga clic en el + entre el desencadenador y la acción Actualizar propiedades del archivo. Busque Retraso y selecciónelo. Establezca el retraso en 1 minuto. Esto le da tiempo a SharePoint para finalizar la creación del archivo y aplicar los valores de columna obligatorios. - Ajuste la acción de actualización
En la acción Actualizar propiedades del archivo, asegúrese de hacer referencia al identificador de archivo de la salida del desencadenador. Use el contenido dinámico ID del desencadenador. No use una acción separada Obtener propiedades del archivo, ya que también puede fallar. - Guardar y probar
Haga clic en Guardar. Cargue un archivo. Después de un minuto, el flujo debería actualizar los metadatos sin errores.
Si el flujo aún tiene problemas después de la solución principal
Incluso después de aplicar la condición de desencadenador o el retraso, algunos problemas pueden persistir. Aquí hay problemas comunes y sus soluciones.
El flujo falla con error de acceso denegado
Si el flujo se ejecuta pero recibe un error de Acceso denegado, el propietario del flujo puede no tener permisos de edición en la biblioteca. Verifique los permisos del sitio. El propietario del flujo necesita al menos acceso de Colaborar o Editar a la biblioteca de documentos. En SharePoint, vaya a la configuración de la biblioteca y verifique que la cuenta del propietario del flujo esté listada con el nivel de permiso adecuado.
El flujo falla con error de elemento no existe
Este error ocurre cuando el flujo intenta actualizar un archivo que se ha movido o eliminado antes de que se ejecute la acción de actualización. Asegúrese de que el flujo use el identificador de archivo correcto. Use el ID de la salida del desencadenador, no un nombre de archivo o URL. También evite usar un desencadenador Cuando se crea un archivo en una biblioteca donde los archivos se mueven desde otra ubicación, ya que el archivo puede ya existir.
El flujo falla con metadatos obligatorios para múltiples columnas
Si la biblioteca tiene múltiples columnas obligatorias, el método de condición de desencadenador funciona solo para una columna. En ese caso, use el método de retraso en su lugar. Alternativamente, cree una columna calculada en la lista de SharePoint que combine los valores requeridos en una sola columna calculada, y luego use la condición de desencadenador en esa columna calculada.
| Enfoque | Condición de desencadenador | Acción de retraso |
|---|---|---|
| Complejidad de configuración | Requiere nombre interno de columna | Simple, no se necesita nombre de columna |
| Maneja múltiples columnas obligatorias | Solo una columna compatible | Funciona con cualquier número de columnas |
| Velocidad de ejecución | Se ejecuta inmediatamente después de que se establecen los metadatos | Siempre espera el tiempo de retraso establecido |
| Riesgo de fallo | Bajo si el nombre interno es correcto | Bajo, pero el retraso puede ser demasiado corto |
Después de aplicar la solución correcta, su flujo actualizará los metadatos en archivos nuevos sin errores de permisos. Para bibliotecas con múltiples columnas obligatorias, el método de retraso es la opción más confiable. Si usa el método de condición de desencadenador, siempre pruebe con un archivo que tenga la columna obligatoria completada. Para mejorar aún más la confiabilidad, considere usar el desencadenador Cuando se crea o modifica un archivo y agregue una condición que verifique si el archivo tiene todos los metadatos requeridos antes de continuar. Este enfoque evita problemas de sincronización por completo y funciona para cualquier número de columnas obligatorias.