I have a flow that is working well... when it works. The issue is I have a step where I take a compose output in JSON format and add a step that adds it into an excel table. This all works but sometimes this step will take 10+ min while other times it takes 1 sec. When I check that same point in the run on other flow runs it completes in 1 sec. Any ideas on how to make this occur less or how to make it retry faster etc? This is killing the flows usability as 2 min is acceptable but 22 min is far from is.
This is the issue I am getting.
And here is the same point in the flow the previous run where it had no issues.
TYIA!
Solved! Go to Solution.
I think I am understanding your flow much better now. I have not done anything exactly like this, but I think the concurrency in your Apply to each may be causing the issue.
I thought initially you had some process where you just needed to add rows to an existing spreadsheet. In reality, you are getting data from SharePoint, processing it, creating a separate spreadsheet for a number of people from a template file, and then sending this to them. You said you have concurrency set to 50. I would try lowering that until performance is acceptable. There is probably some throttling going on at this setting.
This lists some of the limits of concurrency: Limits and configuration - Power Automate | Microsoft Learn
One thing I have done when I have hit some throttling limits is to put the steps you have in your apply to each inside of a do Until. I then limit how many items can be returned from the Get items action (in situations where I have applied this, the throttling limit kicks in at 100, so I limit it to 99 items. I create a variable named Completed with the default value of Pending and set the Do until to run until it equals Completed.
Then after the get items action, I have a condition set to where the length of the items from the Get items action is greater than 0. The condition uses this expression:
int(length(outputs('Get_items')?['body/value']))
If it is greater than 0, it runs down the Yes side and loops again. If it is zero, then it goes down the No side and sets the Completed variable to completed so it does not loop again.
In my SharePoint list where I am getting the items, there is a column with the default value of Pending. In my apply to each, it updates this to Processed. The Get items action has a filter query to get the pending items.
At the end of the yes, there is a delay of two minutes to allow the throttle limit to reset. The flow looks like this:
Have you tried enabling concurrency in the apply to each action?
I've noticed those issues if the workbook is opened. Even more if the workbook is opened and a cell is selected like a value is about to be typed into the cell.
It is like PA is trying to call the workbook but getting denied because it is opened or being used.
You can do it to an open workbook, but there seems to be some delay or timeouts with power automate.
Most likely related to Excel getting locked as explained here: Excel file is locked for editing - Microsoft Support. This probably affects Power Automate, which is...
I have encountered this in some of my flows, but since it hasn't failed, I have not looked into it much further. I've tried to duplicate this in different ways and the flow has always added or updated the row. There has to be some certain behavior in Excel that triggers it to lock it from editing.
This may be key from the above Microsoft post:
Tip: Sometimes a file may get locked if everyone editing isn't using a version that supports co-authoring. To co-author together, make sure everyone is using the Microsoft 365 subscription version of Excel or Excel for the web.
I know in my company we still have a few users on Office 2016 for some legacy applications support.
@mmollet Are you using the Excel file as a source for something else? If there is an issue about time delays, you could use a SharePoint List instead of Excel.
My flow gets a start date, an end date, the user's email, and a json array of users to get rows for from power apps. It creates a single excel file with a single table for each user passed in and is a table of their time entries between the two dates passed in. I will post Images of the flow below.
Flow Details
Also while I'm here I am getting a blank line at the top of each table for each user. Has 0 impact but my perfectionist brain is really not enjoying it all so any ideas on fixing that would be appreciated as well. Thank you so much for all the help and suggestions.
Grabbing data from a single SP list based on UserName column and EndTime column via get items call from flow. Output is an excel table/file that also has formulas for calculating line item totals as well as overall totals for two different types of entries, "Travel" entries and anything non-travel. This file is then attached to an email and sent to the accountant as that users time sheet for the week. The file is created using a template word doc like this:
I think I am understanding your flow much better now. I have not done anything exactly like this, but I think the concurrency in your Apply to each may be causing the issue.
I thought initially you had some process where you just needed to add rows to an existing spreadsheet. In reality, you are getting data from SharePoint, processing it, creating a separate spreadsheet for a number of people from a template file, and then sending this to them. You said you have concurrency set to 50. I would try lowering that until performance is acceptable. There is probably some throttling going on at this setting.
This lists some of the limits of concurrency: Limits and configuration - Power Automate | Microsoft Learn
One thing I have done when I have hit some throttling limits is to put the steps you have in your apply to each inside of a do Until. I then limit how many items can be returned from the Get items action (in situations where I have applied this, the throttling limit kicks in at 100, so I limit it to 99 items. I create a variable named Completed with the default value of Pending and set the Do until to run until it equals Completed.
Then after the get items action, I have a condition set to where the length of the items from the Get items action is greater than 0. The condition uses this expression:
int(length(outputs('Get_items')?['body/value']))
If it is greater than 0, it runs down the Yes side and loops again. If it is zero, then it goes down the No side and sets the Completed variable to completed so it does not loop again.
In my SharePoint list where I am getting the items, there is a column with the default value of Pending. In my apply to each, it updates this to Processed. The Get items action has a filter query to get the pending items.
At the end of the yes, there is a delay of two minutes to allow the throttle limit to reset. The flow looks like this:
I am going to check out the article you posted. Thank you btw! My thought was that if I have 20-30 employees that I would want my concurrency to be at least at that level so that each iteration of the loop could get assigned its own thread on the server side as the flow ran. This would mean that my 1 min delay would be a 1 min total rather than 1min X number of users total if they ran one after the other for example. I am going to try to lower this to 30 and see what happens. Ty again!
Half the time I see issues here is a result of trying to use Excel as form of middle calculator within the flow.
Users are familiar with Excel and set up formulas or lookups within a workbook. Then they try to plug in items from power automate and let Excel do the math/lookups.
This is not a good route to go for multiple reasons. Delays, Calculation Doesn't work on closed books, not transparent, rarely supports rapid flow runs.
It is better to find a process or method that has Power Automate doing the calculations or lookups. This might require setting up tables differently or utilizing different lists. It might take some extra work to figure out how to put the correct expression or format in Power Automate to get the result you want, but it will be a much more transparent and consistent process.
The formulas in the excel sheet are:
=SUM(UserHoursTable[MinutesOnTask])-$L$5 to get total normal hours
=SUMIF(UserHoursTable[TaskCategory],"Travel",UserHoursTable[MinutesOnTask]) to get Travel hours
=SUM(UserHoursTable[MinutesOnTask]) to get total of both types of hours combined
=($L$4*$L$3)+($L$6*$L$5) to get total pay owed (Normal hours * Normal Rate) + (Travel Hours * Travel Rate)
I am hoping that none of these are an issue. This being in the sheet saves the accountant from having to use paper and calculate by hand for each one of 20+ employees that are hourly. There are no lookups or anything beyond what is posted in red above. I am a strong advocate of the "Excel isn't a **bleep** database so stop using as such" argument! 😂
Changed the value from 50 to 30 and this flow has now run with no issues at all and only took 1:54 to complete. Seems that this has done the trick. I assumed that it would only use the needed number of threads up to a maximum of 50 but it seems there is more going on than I thought. I am going to be testing more this week so I will post any updates here good or otherwise. Thank you again for the solution!
If I'm looking at this correctly, the Excel workbook is made so the accountant can manually input the Green boxes? All other values exist in SharePoint List, and the unknown value is the Normal Rate and Travel Rate?
If you could find a way to get the Normal Rate and Travel Rate, then the special Excel sheet isn't needed. Maybe you can't and that's why this exists in the first place.
However, I after reading the other post and Solution, I see that the separate Excel sheets being generated and sent is helping skip over a lot of issues. The problems usually come from like you said, using Excel as a database. This process isn't really using Excel as a middle calculator, it's more like the end output is an Excel calculator, so it works.
Glad you got it working,
This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other! Have you ever wondered how your fellow community members earn the different ranks available? What is the difference between an Advocate and a Helper, a Solution Sage and a Community Champion? In today's #TuesdayTip, we share the secrets and tips to help YOU keep your ranking growing--and why it's so important to our communities. What are community ranks? - Power Platform Community (microsoft.com) Get the details in this Knowledge Base article that shows you what ranks are, how they are achieved, and what they mean to you as you engage with other community members on a regular basis. Once you start your journey in the community, ranking up, you'll find the benefits. So get busy with those kudos, solutions, and more! We can't wait to see how you rank!That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we continue to get "Back to Basics."
After all the planning and preparing, the annual Microsoft Power Platform Conference is finally here! We are excited to see so many of our community in Las Vegas this week. To help make sure you don't miss any of the workshops, sessions, and events we have planned, make sure to check out this handy Community One-Sheet, and download the pdf today! Make sure to stop by the Community Lounge to meet @hugobernier, @EricArcher, @heaher_italent, and @AshleyFelts from our team!
Join us for the first-ever the Biz Apps Community User Group meeting live from the Power Platform Conference! This one hour user group meeting is all about discovering the value and benefits of User Groups! Discover how you can find a group in your local area or about specific topics where you can learn new skills and meet like-minded people as a user group member. Hear from User Group leaders about why they do what they do and what resources they receive to help them succeed as community ambassadors. If you have never attended a User Group meeting before, this will be a great introduction! We hope you are inspired to find a group that meets your unique interests! October 5th at 2:15 pm Pacific time If you're attending #MPPC23 in Las Vegas, join us in person! Find out more here: https://powerplatformconf.com/#!/session/Biz%20Apps%20Community%20User%20Group%20Meeting%20-%20Live%20from%20MPPC/6172 Not at MPPC23? Attend vvirtually by registering here: https://aka.ms/MPPCusergroupmeeting2023 If you can't attend this meeting live, don't worry! We will record this meeting and share it with the Community at powerusers.microsoft.com
We are excited to kick off our new #TuesdayTIps series, "Back to Basics." This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other! This Week's Tips: Account Support: Changing Passwords, Changing Email Addresses or Usernames, "Need Admin Approval," Etc.Wondering how to get support for your community account? Check out the details on these common questions and more. Just follow the link below for articles that explain it all.Community Account Support - Power Platform Community (microsoft.com) All About GDPR: How It Affects Closing Your Community Account (And Why You Should Think Twice Before You Do)GDPR, the General Data Protection Regulation (GDPR), took effect May 25th 2018. A European privacy law, GDPR imposes new rules on companies and other organizations offering goods and services to people in the European Union (EU), or that collect and analyze data tied to EU residents. GDPR applies no matter where you are located, and it affects what happens when you decide to close your account. Read the details here:All About GDPR - Power Platform Community (microsoft.com) Getting to Know You: Setting Up Your Community Profile, Customizing Your Profile, and More.Your community profile helps other members of the community get to know you as you begin to engage and interact. Your profile is a mirror of your activity in the community. Find out how to set it up, change your avatar, adjust your time zone, and more. Click on the link below to find out how:Community Profile, Time Zone, Picture (Avatar) & D... - Power Platform Community (microsoft.com) That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we get "Back to Basics."
Are you attending the Microsoft Power Platform Conference 2023 in Las Vegas? If so, we invite you to join us for the MPPC's Got Power Talent Show! Our talent show is more than a show—it's a grand celebration of connection, inspiration, and shared journeys. Through stories, skills, and collective experiences, we come together to uplift, inspire, and revel in the magic of our community's diverse talents. This year, our talent event promises to be an unforgettable experience, echoing louder and brighter than anything you've seen before. We're casting a wider net with three captivating categories: Demo Technical Solutions: Show us your Power Platform innovations, be it apps, flows, chatbots, websites or dashboards... Storytelling: Share tales of your journey with Power Platform. Hidden Talents: Unveil your creative side—be it dancing, singing, rapping, poetry, or comedy. Let your talent shine! Got That Special Spark? A Story That Demands to Be Heard? Your moment is now! Sign up to Showcase Your Brilliance: https://aka.ms/MPPCGotPowerSignUp Deadline for submissions: Thursday, Sept 28th How It Works: Submit this form to sign up: https://aka.ms/MPPCGotPowerSignUp We'll contact you if you're selected. Get ready to be onstage! The Spotlight is Yours: Each participant has 3-5 minutes to shine, with insightful commentary from our panel of judges. We’re not just giving you a stage; we’re handing you the platform to make your mark. Be the Story We Tell: Your talents and narratives will not just entertain but inspire, serving as the bedrock for our community’s future stories and successes. Celebration, Surprises, and Connections: As the curtain falls, the excitement continues! Await surprise awards and seize the chance to mingle with industry experts, Microsoft Power Platform leaders, and community luminaries. It's not just a show; it's an opportunity to forge connections and celebrate shared successes. Event Details: Date and Time: Wed Oct 4th, 6:30-9:00PM Location: MPPC23 at the MGM Grand, Las Vegas, NV, USA
The Reading Dynamics 365 and Power Platform User Group is a community-driven initiative that started in September 2022. It has quickly earned recognition for its enthusiastic leadership and resilience in the face of challenges. With a focus on promoting learning and networking among professionals in the Dynamics 365 and Power Platform ecosystem, the group has grown steadily and gained a reputation for its commitment to its members! The group, which had its inaugural event in January 2023 at the Microsoft UK Headquarters in Reading, has since organized three successful gatherings, including a recent social lunch. They maintain a regular schedule of four events per year, each attended by an average of 20-25 enthusiastic participants who enjoy engaging talks and, of course, pizza. The Reading User Group's presence is primarily spread through LinkedIn and Meetup, with the support of the wider community. This thriving community is managed by a dedicated team consisting of Fraser Dear, Tim Leung, and Andrew Bibby, who serves as the main point of contact for the UK Dynamics 365 and Power Platform User Groups. Andrew Bibby, an active figure in the Dynamics 365 and Power Platform community, nominated this group due to his admiration for the Reading UK User Group's efforts. He emphasized their remarkable enthusiasm and success in running the group, noting that they navigated challenges such as finding venues with resilience and smiles on their faces. Despite being a relatively new group with 20-30 members, they have managed to achieve high attendance at their meetings. The group's journey began when Fraser Dear moved to the Reading area and realized the absence of a user group catering to professionals in the Dynamics 365 and Power Platform space. He reached out to Andrew, who provided valuable guidance and support, allowing the Reading User Group to officially join the UK Dynamics 365 and Power Platform User Groups community. One of the group's notable achievements was overcoming the challenge of finding a suitable venue. Initially, their "home" was the Microsoft UK HQ in Reading. However, due to office closures, they had to seek a new location with limited time. Fortunately, a connection with Stephanie Stacey from Microsoft led them to Reading College and its Institute of Technology. The college generously offered them event space and support, forging a mutually beneficial partnership where the group promotes the Institute and encourages its members to support the next generation of IT professionals. With the dedication of its leadership team, the Reading Dynamics 365 and Power Platform User Group is poised to continue growing and thriving! Their story exemplifies the power of community-driven initiatives and the positive impact they can have on professional development and networking in the tech industry. As they move forward with their upcoming events and collaborations with Reading College, the group is likely to remain a valuable resource for professionals in the Reading area and beyond.
User | Count |
---|---|
67 | |
35 | |
34 | |
33 | |
32 |
User | Count |
---|---|
79 | |
74 | |
68 | |
51 | |
51 |