cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
LaurenceL
New Member

Check triggerBody for existence of a property without crashing

Hi - how do I check for the existence of a field in the triggerBody? I cannot check for null or empty as this crashes if the property actually doesnt exist. These do not work @equals(triggerBody()['partnerId'], null) or @empty(triggerBody()['partnerId']) if "partnerId" doesnt exist. I need to check as my HTTP request can occasionally not send the required property.

 

Any ideas?

1 ACCEPTED SOLUTION

Accepted Solutions
LaurenceL
New Member

this was solved by using the @contains function as in @contains(triggerBody(), 'partnerId')

View solution in original post

8 REPLIES 8
LaurenceL
New Member

this was solved by using the @contains function as in @contains(triggerBody(), 'partnerId')

View solution in original post

DenisMolodtsov
Kudo Kingpin
Kudo Kingpin

It does not really work for me

 

This still fails because genius MS Flow tries to evaluate `body('Start_single_approval')['comments']` expression even if you wrap it with if(contains()) 

 

if(contains(body('Start_single_approval'), '"comments": '), body('Start_single_approval')['comments'] ,'')

 

I also have the same issue where the contains function doesn't work checking for the existance of a property in an array. Exactly the same logic (i.e. within an If statement).

DenisMolodtsov
Kudo Kingpin
Kudo Kingpin

I could not find anything that can properly check for properties to exist...

 

The only ugly workaround is to create 3 scopes:

  • Try  - try to access a property that might not exist. If it does not exist - we fail and go to the next step
  • Catch - Run only if the previous scope fails
  • Finally - Run in any case

 

Scopes.png

DenisMolodtsov
Kudo Kingpin
Kudo Kingpin

Created request for a function that check if property exists: https://powerusers.microsoft.com/t5/Flow-Ideas/Add-an-ability-to-check-if-property-exists-in-an-obje...

 

Please, upvote if you face the same problem.

DenisMolodtsov
Kudo Kingpin
Kudo Kingpin

I haven't tested it yet, but @xilef suggests using '?' approach. Seems promising to me:



if(empty(body('ApprovalByAnyDirector')?['comments']), 'None', body('ApprovalByAnyDirector')?['comments'])

  

Tried it...even tried with not()...does not work

Thanks @LaurenceL , exactly what I was looking for. 

contains(triggerBody(), 'thing') worked great for me. 

Helpful resources

Announcements
MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

secondImage

Are Your Ready?

Test your skills now with the Cloud Skill Challenge.

Top Solution Authors
Top Kudoed Authors
Users online (75,226)