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

Power Automate Substring weird behavior

Hy guys, hope you're doing fine 

 

For my first topic I have this "substring" error: 

 

The execution of template action 'Select' failed: The evaluation of 'query' action 'where' expression '{

  "sharepointItem": "@substring(item()['Task Name'], add(indexOf(item()['Task Name'], '-'), 2))"

}' failed: 'The template language function 'substring' parameter is out of range: 'start index' must be non-negative integer and should be less than the length of the string. Please see https://aka.ms/logicexpressions#substring for usage details.'.

 

I'm trying to execute this function as the key in a Select action, applied to a huge JSON content, and get a especific number after " - " symbol. For instance, from "Incidente - 15832", I would like to stick with the "15832". 

 

Flow setup:

 

 

What is quite confusing for me is when I grab the first item of JSON, for test purpose, and apply substring(first(body('Parse_JSON'))['Task Name'], add(indexOf(first(body('Parse_JSON'))['Task Name'], '-'), 2)), the formula works smoothly:

Issue_Compose.JPG 

 

I used lenght(item()['Task Name']) to check the lenght of strings and got the following values:

 

defa07_5-1610501001139.png

 

And indexOf(item()['Task Name'], '-') to know if each part of the formula returns the proper value:

 

Issue_Index.JPG

 

As well as just item()['Task Name']:

Issue_TaskItem.JPG

 

 

 

 

 

 

 

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @v-litu-msft,

 

Turns out it was a pagination issue on the "List rows in a table", where I set the threshold to 5000. For some reason, when I reduced it to 500, the flow worked!

 

Thanks for your support!!

View solution in original post

4 REPLIES 4
v-litu-msft
Community Support
Community Support

Hi @defa07,

 

It's so weird, your expression is collect and I tested on my side but not found the same issue:

Screenshot 2021-01-13 161546.jpg

 

How about using the split() function to do it: 

split(item()?['Task Name'],'- ')[1]

Screenshot 2021-01-13 161931.jpg

 

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Tks, @v-litu-msft ,

 

I'm afraid its a bug, beacause once more I tested your suggested formula on a Compose, and it returns the expected value, but in Select, now, I've just got the following error:

 

InvalidTemplate. The execution of template action 'Select' failed: The evaluation of 'query' action 'where' expression '{ "sharepointItem": "@split(item()?['Task Name'],'- ')[1]" }' failed: 'The template language expression 'split(item()?['Task Name'],'- ')[1]' cannot be evaluated because array index '1' is outside bounds (0, 0) of array. Please see https://aka.ms/logicexpressions for usage details.'.

 

Issue_WF_Split.JPG

v-litu-msft
Community Support
Community Support

Hi @defa07,

 

How about deleting the select action or recreating a new Flow to test it?

 

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi @v-litu-msft,

 

Turns out it was a pagination issue on the "List rows in a table", where I set the threshold to 5000. For some reason, when I reduced it to 500, the flow worked!

 

Thanks for your support!!

View solution in original post

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Users online (2,834)