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

How to use logical IF with string function in Microsoft flow?

I built a flow to abstract a GUID from email body when new emails come in. The email body could contain:

3932FB4C-0DF5-11E8-A5C3-7804C4623542

or 

KeyStart***3932FB4C-0DF5-11E8-A5C3-7804C4623542***KeyEnd

 

I have built the following expression to extract the GUID

 

if(greater(indexof(body('Html_to_text'), '***KeyEnd'), 1),
substring(body('Html_to_text'), Add(indexof(body('Html_to_text'), 'KeyStart***'), 11), 36),
substring(body('Html_to_text'), 0, 36))

 

For the second case, it works. For the first case, it always returns "index out of range" in the substring. Does anyone know why?

3 REPLIES 3
Community Support
Community Support

Re: How to use logical IF with string function in Microsoft flow?

Hi @Gaolai,

 

Could you please share a screenshot of your flow's configuration?

 

The issue is confirmed on my side, I think this issue is related to the second parameter within your if() function. But when I add the following formula within a separated "Compose" action, the "Compose" action works well when the email body contains 3932FB4C-0DF5-11E8-A5C3-7804C4623542:

substring(body('Html_to_text'),0,36)

12.JPG

 13.JPG

 

I afraid that this is issue is related to the if() function. In addition, you could consider take a try with the the following workaround as an alternative way:

  • Add a "When a new email arrives" trigger.
  • Add a "Html to text" action, Content field set to Body dynamic content of the trigger.
  • Add a Condition, click "Edit in advanced mode", type the following formula:
@greater(indexof(body('Html_to_text'), '***KeyEnd'), 1)
  • Within "If/yes" branch of Condition, add a "Compose" action, Inputs set to following formula:
substring(body('Html_to_text'),add(indexof(body('Html_to_text'),'KeyStart***'),11),36)
  • Within "If/no" branch of Condition, add a "Compose 2" action, Inputs set to following formula:
substring(body('Html_to_text'),0,36)

Image reference:14.JPG

The flow works successfully as below:15.JPGBest regards,

Kris

 

 

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Gaolai Advocate I
Advocate I

Re: How to use logical IF with string function in Microsoft flow?

Thanks for your reply. I actually found out where the problem came from, the If operation will evaluate both parameter 2 and 3 no matter if the parameter 1 is true or false.

Highlighted
StevenCollier
Frequent Visitor

Re: How to use logical IF with string function in Microsoft flow?

Thanks @v-xida-msft this fixed my si,milar issue, but is there somewhere I can vote to get the if statement to not require this workaround. 

Helpful resources

Announcements
firstImage

New Ranks and Rank Icons released on April 21!

The time has come: We are finally able to share more details on the brand-new ranks coming to the Power Automate Community!

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!

sixthImage

Community Summit North America

The top training and networking event across the globe for Microsoft Business Applications

Top Solution Authors
Users online (8,492)