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

What's the correct way to evaluate custom SharePoint fields?

I've got a flow set-up which acts on editing a document stored in SharePoint.  The content type has a boolean yes/no field which needs to be set to yes (true) in order to perform the flow (send an e-mail). I'm struggling with finding the correct way to do this. 

 

I have two questions: 

1) Do I need to perform an additional "fetch the metadata" step or are the custom fields already present in the trigger (and how can I check which fields are in the trigger in the first place??) 

2) What's the syntax for the expression? Things I've tried include: 

 

@contains(trigger()['Ready']['Value'], 'Yes')

@contains(trigger()['Ready'], 'Yes') 

@contains(body('De_metagegevens_van_het_bestand_ophalen_via_het_pad')?['Ready']['Value'], 'Yes')

 

And I've tried several different values (yes, true, 1). Nothing does the trick so far. I'd love some more background info on how to properly take on debugging these things. Checking the values, testing the expressions, that kind of stuff. 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Power Apps
Power Apps

Re: What's the correct way to evaluate custom SharePoint fields?

Sorry, you are right. There isn't a great way to do this. We need to add support for returning the list item id as a field as soon as possible. I have talked to our developers about this, and added it to the backlog. I don't have an ETA yet, but it is a priority.

View solution in original post

13 REPLIES 13
Highlighted
Power Apps
Power Apps

Re: What's the correct way to evaluate custom SharePoint fields?

Hi @jsiegmund,

 

The best way to do this today is to use the "when an existing item is modified" trigger. This will not show your document library under the List name dropdown since we are not fully supporting it yet, but if you type in the name of your library, it will work. It is not perfect today, and doesn't surface all the properties we would like to surface, but boolean fields should work fine.

 

Hope this helps.

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

Hi @KeremY,

 

Tried it but it doesn't seem to work. I can see in the trigger the value is coming in as "true", but when I then create a condition that checks Ready equals "true", it always seems to end up in the "if no" section. 

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

Found out how to do it: @equals(triggerBody()?['Ready'], bool(1))

 

Problem now is that due to the "item modified" trigger, I have zero information about the file that was modified. Best case scenario I'd like to send it as an attachment, otherwise a link is ok too. I tried doing a REST query to get more details, but that ends up in a 403 Unauthenticated. Any suggestions?

Highlighted
Power Apps
Power Apps

Re: What's the correct way to evaluate custom SharePoint fields?

Yes, this is clearly a limitation we have at the moment, and why we don't fully support document libraries yet. We need to make sure we bring back the relative path to the item as part of the item modified trigger, so that it can be used as input to the "get file content" action. The support for this is not yet there, but it will be coming early next year.

 

Not perfect, but there may be a workaround by using

1. A file modified trigger

2. Do a get file metadata on the triggered item using the file identifier to obtain the item ID

3. Do a get items on the library to enumerate all the items.

4. Write a condition that checks for the id of the triggered item obtained in step (2) with the items in step (3), and then AND that with checking for the boolean field. Something like this:

@and(equals(item()?['ID'], body('Get_file_metadata')?['Id']), equals(triggerBody()?['Ready'], bool(1)))

5. In the Yes branch of the condition, send the mail, using File Content and File Name from step (1) as an attachment.

 

One caveat is that if your library has a large number of items, you will probably not get all of them using GetItems.

 

Hope this works as a workaround while we add proper support for document libraries.Thank you for sharing your scenarios with us.

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

I tried, but doesn't work unfortunately. The Id returned in the "get file metadata" step is: 

 

Id
%252fDeclarations%252fBook3.xlsx

 

Which of course does not match with the numeric ID's returned from the get items step. I checked to see whether there's any other field that I could match on, there's not. By the way unless the above result is really what it should be I think this might be a bug? I would have expected a numeric Id (in which case your answer would work :))

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

Any other options @KeremY?

Highlighted
Power Apps
Power Apps

Re: What's the correct way to evaluate custom SharePoint fields?

Sorry, you are right. There isn't a great way to do this. We need to add support for returning the list item id as a field as soon as possible. I have talked to our developers about this, and added it to the backlog. I don't have an ETA yet, but it is a priority.

View solution in original post

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

Ok, I'll wait for that than. Thanks for the update!

Highlighted
Advocate I
Advocate I

Re: What's the correct way to evaluate custom SharePoint fields?

Hi @KeremY, any news on this one? Still have a couple of flows standing by waiting on this to be implemented. Just checked, situation is still the same as far as I can see. 

Highlighted
Kudo Collector
Kudo Collector

Re: What's the correct way to evaluate custom SharePoint fields?

Hello, I used modified time to compare, items vs files in SHP list

 

when item is created

list folder (root folder of document library)

for each (list folder - body)

     condition - if modified time is equal

            then upload to dropbox (for example)

 

this does not solve the use case when file is created in subfolder 😞

and the limit for file size is 50mb (which is dissapointing 🙂 )

Highlighted
Kudo Collector
Kudo Collector

Re: What's the correct way to evaluate custom SharePoint fields?

+1 From me. it is very annoying that ID (and pretty much any other field in the 'When a file is modified' (and related) triggers contains the path while the 'Get Item' activity needs the actual numerical File ID.

 

We have the same limitation the other way around, when using the 'When an existing item is modified' trigger we get the numerical ID, but there is no way to map that to a path to get the associated file name from 'Get file metadata using path'.

 

It is like SharePoint integration was never really tested, or at least not using real-world scenarios.

 

Logged under Flow Ideas, please upvote: https://powerusers.microsoft.com/t5/Flow-Ideas/SharePoint-File-triggers-need-to-return-numerical-ID/...

 

 

 

Highlighted

Re: What's the correct way to evaluate custom SharePoint fields?

Is this still an issue because I am currently facing the same issue in not being able to evaluate a Y/N 

Highlighted
Kudo Collector
Kudo Collector

Re: What's the correct way to evaluate custom SharePoint fields?

If you need to evaluate Yes/No SHP collumn try this:

 

@equals(triggerBody()?['Get_x0020_Approval'], bool(1))

Helpful resources

Announcements
firstImage

Now Live: Power Virtual Agents Community!

We are excited to announce the launch of Power Virtual Agents Community. Check it out now!

firstImage

New & Improved Power Automate Community Cookbook

We've updated and improved the layout and uploading format of the Power Automate Cookbook!

thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

Top Solution Authors
Users online (8,879)