Hi, everyone.
I have a big problem.
I have a flow to add files in a library from sharepoint.
That funcionally because the file is uploaded, but when I try open the file in the library appers that error.
I hope someone can help me please, thanks.
Muchas gracias!!!
En verdad me ayudaste demasiado ya que no comprendía porque seguía el problema!
@Anonymous
Tenemos que cambiar algunas cosas. En primer lugar, le recomendaría que use el desencadenador de PowerApps (V2). Para que podamos establecer los parámetros de entrada correctamente para su nombre y contenido. Para hacer esto, elimine el disparador que tiene y luego le pedirá que agregue un nuevo disparador. Haga clic en el icono de Power Apps y mostrará dos opciones. Utilice la versión V2
Ahora agregaremos un parámetro de entrada de cadena y un parámetro de entrada de contenido de archivo
Añade primero el nombre y después el contenido. Cámbiales el nombre a FileName y FileContent, como en mi imagen
En el archivo de creación, utilice el parámetro FileName como nombre de archivo y el parámetro filecontent como contenido
Creé una aplicación de ejemplo, que tiene una lista de SharePoint. Agregué un formulario en modo Nuevo para poder agregar archivos adjuntos
Voy a adjuntar un archivo de Excel, y luego usaré mi botón enviar al flujo para enviar el nombre y el contenido al flujo y el flujo lo escribirá en sharepoint y luego lo abriré para mostrárselo.
'[Sample]SendAttachmenttoFlow'.Run(
Last(DataCardValue16.Attachments).Name,
{
file: {
contentBytes: Last(DataCardValue16.Attachments).Value,
name: Last(DataCardValue16.Attachments).Name
}
}
)
Tienes que introducirlo así, porque el parámetro Contenido del archivo es en realidad un Registro, no sólo el contenido
Ahora lo ejecutaré, adjuntaré un archivo y haré clic en el botón y luego desencadenará el flujo. Y luego revisaremos mi carpeta de SharePoint para ver si hay el nuevo archivo
Ahora haré clic en el botón
Ahí está mi archivo adjunto
ahora lo abriré
Se abre muy bien
This took a long time to get you there, it would be great if you marked this answer as Resolved and maybe a thumbs up please
Cheers
If you like my answer, please Mark it as Resolved, and give it a thumbs up, so it can help others
Thank You
Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
https://gernaeysoftware.com
LinkedIn: https://www.linkedin.com/in/michaelgernaey
Ohh ya entiendo mejor, pero cuando modifico me aparece error en el código.
Número de argumentos no validos, se recibieron 2 se esperaba 1.
@Anonymous
La acción Crear archivo requiere 2 cosas. El nombre del archivo y el contenido del archivo. Su aplicación de lienzo, solo está pasando el nombre, no está pasando el contenido. Por lo tanto, lo que está poniendo en el campo Contenido no es válido. Por eso no está funcionando.
En su aplicación Canvas, debe pasar el contenido del último archivo adjunto. Como expliqué en mi post anterior.
Cheers
If you like my answer, please Mark it as Resolved, and give it a thumbs up, so it can help others
Thank You
Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
https://gernaeysoftware.com
LinkedIn: https://www.linkedin.com/in/michaelgernaey
Hi @Anonymous
As I showed in your code, you are NOT passing the actual attachment content, so how could it write the content correctly?
There is no CONTENT for the Create File to write. Please read carefully what I wrote. I explained this.
As this is the answer, please mark my answer is the Resolution(resolved) pls. Or feel free to ask another question, but I am not sure how better to explain it. You cannot save a file you haven't given to the Create File.
Cheers
If you like my answer, please Mark it as Resolved, and give it a thumbs up, so it can help others
Thank You
Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
https://gernaeysoftware.com
LinkedIn: https://www.linkedin.com/in/michaelgernaey
In both fields I put triggerBody()['Creararchivo_Nombredearchivo'] because I need to take the file that upload but I don't understand why the content don't upload correctly;((
HI @Anonymous
It's possible I am just old and blind, but I do not see anywhere in your code where pass the Contents of the Attachment (The Last) one.
subirArchivo.Run(CurrentAttachmentName)
I see you passing the name, but not the content.
So what is the Flow using as the Content of the File? (aka the attachment) since you didn't pass it.
I believe you want
Last(AttachmentControl_11.Attachments).Value
to pass the content. You need to add that to your
.Run(CurrentAttachmentName, Last(AttachmentControl_11.Attachments).Value)
Or is there somewhere else you are passing it and i dont see it? But since you do not seem to be passing the Value(aka the content) of the attachment, your Flow is saving nothing.
And when I look at your image closely, it looks like you are passing the Name to the Content. Since thats the only thing you have. Pass the Value as I have above and then change this to point to that and it should be good.
Cheers
If you like my answer, please Mark it as Resolved, and give it a thumbs up, so it can help others
Thank You
Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
https://gernaeysoftware.com
LinkedIn: https://www.linkedin.com/in/michaelgernaey
My button contains the next code:
// Obtener el último archivo adjunto de la lista
Set(
LastAttachment;
Last(AttachmentControl_11.Attachments)
);;
// Verificar si hay un archivo adjunto
If(
!IsBlank(LastAttachment) && Right(LastAttachment.Name; 5) = ".xlsx";
// Si hay un archivo adjunto con la extensión correcta, obtener su nombre
Set(
CurrentAttachmentName;
LastAttachment.Name
);
// Si no hay archivos adjuntos o la extensión es incorrecta, mostrar una notificación de error
Notify("El archivo no es un archivo .xlsx válido"; NotificationType.Error);
Set(
CurrentAttachmentName;
""
)
);;
// Si el archivo es válido, ejecutar la función subirArchivo.Run() con el nombre del archivo adjunto actual
If(
CurrentAttachmentName <> "";
subirArchivo.Run(CurrentAttachmentName)
);;
// Restablecer el control de archivos adjuntos
Reset(AttachmentControl_11);;
// Mostrar una notificación de éxito si no se mostró un mensaje de error
If(
CurrentAttachmentName <> "";
Notify("El archivo fue cargado correctamente"; NotificationType.Success)
);;
// Mostrar una notificación si no existe ningún archivo adjunto
If(
IsBlank(LastAttachment);
Notify("No existe ningún archivo adjunto"; NotificationType.Warning)
);;
The file uploaded correctly but the error appears when I try open the file.
Hi @Anonymous
Very nice to meet you,
I think you mean you use a Button (not Bottom), to active the flow. Thats why I want to see the actual filename and the content from the Canvas App Side, because the Flow is not making up the content or the name, its coming from the App, so there is something wrong in the App side.
Cheers
If you like my answer, please Mark it as Resolved, and give it a thumbs up, so it can help others
Thank You
Michael Gernaey MCT | MCSE | MCP | Self-Contractor| Ex-Microsoft
https://gernaeysoftware.com
LinkedIn: https://www.linkedin.com/in/michaelgernaey
Hi Mike, nice to meet you.
I tell you all the context to understand the problem that I have.
Well, I have a power app, I use a button that active a flow in powerautomate to upload files in the sharepoint library.
The file upload but I recived the error when I clic on the file This book could not be opened because the file format may not match the file extension.
Tomac
986
Moderator
stampcoin
699
Super User 2025 Season 2
Riyaz_riz11
577
Super User 2025 Season 2