cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Advocate III
Advocate III

Fill in SP properties of file just uploaded

Hi everyone,

 

I've followed the guide by Shane Young for uploading files via PowerApps to a SharePoint library. I'd like to build on this by showing the document properties in an editform below the upload so that the user can populate and save this information.

 

What do I need to put into the Item field on the Form to get it to pull the newly uploaded file?

 

screenshot.jpg

1 ACCEPTED SOLUTION

Accepted Solutions

@Lauren_ 

Yeah ok.

 

I think we need to look at this problem differently because the Flow you are following is rather specific and messing with it is getting you into grief. How about using a Gallery as a different solution?

 

You could upload your files, as per the original method, then users are navigated to a gallery screen which shows all the uploaded files by name. Users can then select the file they want to add metadata to and get taken to another screen with the form. Simples 

View solution in original post

19 REPLIES 19
Super User
Super User

@Lauren_ 

Where Shane uses  Set(varfilelink ... ) you could instead use Set(varFileInfo ...) and drop off the .sharepointfilelink part. That way you will have ALL the information about the uploaded file in the variable varFileInfo.

 

If you then set the Item property of your form to varFileInfo that should do it, I think 🙂 

 

If that doesn't work try using LookUp(yourDocLibrary, ID = varFileInfo.ID) as the Item property.

Thanks Eelman! So should I add that as a new variable to the attachments code (ie before I have the reset)? I'm still trying to get my head around what each bit of Shane's code does so a bit scared to tweak it!

@Lauren_ 

If you share the actual code you are using I'll be able to help you understand what's happening as well as help you adjust it to what I'm getting at.

 

My apologies for the delay in replying, I'm on Australian time so went off to bed 🙂 

Hey Eelman, sure thing! I'm on UK time so I'm probably getting up just as you're getting to bed!

 

My code on the file upload is as below:

 

Set(VarDemofromattachmentcontrol, JSON(Image2.Image, JSONFormat.IncludeBinaryData));Set(VarBase64only, Mid(VarDemofromattachmentcontrol, Find(",", VarDemofromattachmentcontrol)+1, Len(VarDemofromattachmentcontrol) -Find(",", VarDemofromattachmentcontrol) -1));Set(varFileLink, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only).sharepointfilelink);Reset(DataCardValue53_1)

@Lauren_ 

So you would replace the bit in RED 

Set(VarDemofromattachmentcontrol, JSON(Image2.Image, JSONFormat.IncludeBinaryData));Set(VarBase64only, Mid(VarDemofromattachmentcontrol, Find(",", VarDemofromattachmentcontrol)+1, Len(VarDemofromattachmentcontrol) -Find(",", VarDemofromattachmentcontrol) -1));Set(varFileLink, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only).sharepointfilelink);Reset(DataCardValue53_1)

 

with this

Set(varFileInfo, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only))

 

Then, if you set the Item property of your Form to varFileInfo you should get access to ALL the data about that record.

 

What Shane is doing with the code in RED is just returning one field (ie the sharepointfilelink) and setting that to varFileLink. What I'm doing is returning all the fields and setting it to varFileInfo and then you can use all these fields how you like.

 

You will need to adjust your hyperlink that uses varFileLink and set it to varFileInfo.sharepointfilelink to make it work.

 

Let me know how you get on with this.

 

 

Hi Eelman!  Thank you so much again 🙂 I've tried it out and it's gone well up until the point of using it as an item for the form:

varfileinfo.jpg


It only gives the option for sharepointfilelink if I put a stop to varFileInfo. 

 

@Lauren_ 

So, I've just watched the relevant parts of Shane's video (should've done that first hehe) and see what I've done wrong. The sharepointfilelink is a parameter sent back via Flow so we just need to swap that for the ID of the recently uploaded file.

 

To do this:

1. Go to your Flow

2. Edit the Step - 'Respond to PowerApps' - call the Title 'SharePointFileID' then add the Dynamic Content called 'Id' (ie remove the content currently there)

3. Save your Flow

4. Back in PowerApps, goto Action --> Power Automate then remove/delete the Flow from the top of the list that pops up

 

At this point you may need to Save and Close your App but you can do that later if the following doesn't work.

 

5. Find the Flow in the list of Flows and re-add it back in

6. Change the code I listed in RED to this instead

Set(varFileID, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only).sharepointfileid)

 

You can now use this ID to LookUp your SP Library and return info you want. So for your Item property of your form you can use

LookUp( yourSPLibraryName, ID = varFileID)

 

You will also need to re-setup your link, which you can do in a number of ways, but this will work. Add this code to the bottom of your code block:

Set( varFileLink, LookUp( yourSPLibraryName, ID = varFileID, 'Link to item'))

If you do this, then your Launch formula doesn't need to change, which is easy 🙂 

 

I may have missed something here, but let me know how you get on.

 

Thanks Eelman!

 

So it's given me an 'incompatible type' error on the file ID/form.

Lauren__0-1603350752312.png

 

Also I set up SharePointFileLink alongside the ID as the ID = varfileID wasn't working, this seems to be working ok.

 

Lauren__1-1603350881934.png

So the code on my attachment upload is currently:

 

Set(VarDemofromattachmentcontrol, JSON(Image2.Image, JSONFormat.IncludeBinaryData));Set(VarBase64only, Mid(VarDemofromattachmentcontrol, Find(",", VarDemofromattachmentcontrol)+1, Len(VarDemofromattachmentcontrol) -Find(",", VarDemofromattachmentcontrol) -1));Set(varFileID, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only).sharepointfileid);Set(varFileLink, 'UploadPermitsImport/Export'.Run(Last(DataCardValue53_1.Attachments).Name, VarBase64only).sharepointfilelink);Reset(DataCardValue53_1)

@Lauren_ 

Ok, well that's odd. Is the 'incompatible type' error on the Item property of your form? It's a little hard to tell from your image. Also, is the datasource of your form the SP Library? It should be for the above to work.

 

The reason the old code is working is because you are running the Flow twice ie adding the same attachment to your library twice. I'm pretty sure that isn't what you want?

Helpful resources

Announcements
New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

Power Apps Community Call

Power Apps Community Call: February

Did you miss the call? Check out the Power Apps Community Call here.

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

Top Solution Authors
Top Kudoed Authors
Users online (19,987)