cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
mmollet
Community Champion
Community Champion

Add Row to Excel Table issue

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.

Screenshot 2023-03-20 at 2.17.51 PM.png

 

And here is the same point in the flow the previous run where it had no issues. 

Screenshot 2023-03-20 at 2.25.49 PM.png

 

 

TYIA!


If this post solves your issue please mark it as a solution.
1 ACCEPTED SOLUTION

Accepted Solutions

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.

getitems.jpg

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:

David_MA_1-1679498913628.png

 

View solution in original post

12 REPLIES 12
David_MA
Super User
Super User

Have you tried enabling concurrency in the apply to each action?

wskinnermctc
Super User
Super User

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.

wskinnermctc
Super User
Super User

@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.

mmollet
Community Champion
Community Champion

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

  • The outer loop is set to a concurrency of 50 as I have 20-30 users and why not run them all in parallel. (if i am misunderstanding how this works please let me know)
  • The inner loop has a concurrency of 1. (not sure if this is correct but seems to work fine)
  • Get items filter query makes sure to only pull rows for the current user and only rows that have a non-null end date.
  • Gets the template, creates a copy of that file with username+datetime as file name then loops through the output of above step and inserts rows with dates inside the valid range by using a compose statement to build the object.
  • Delay to allow row addition to finish
  • Get contents of the new excel file/table
  • Send as attachment
  • Once this all works the file will simply be deleted after the email is sent as it is no longer needed. 
  • No other users have access to the file that is created, the template, the SP list, or the folder any of the items are even in.

 

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.

Screenshot 2023-03-22 at 8.53.54 AM.png

 

Screenshot 2023-03-22 at 8.54.15 AM.png

 

Screenshot 2023-03-22 at 8.54.23 AM.png

 

Screenshot 2023-03-22 at 8.53.36 AM.png

 


If this post solves your issue please mark it as a solution.

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: 

 

Screenshot 2023-03-22 at 9.42.30 AM.png

 


If this post solves your issue please mark it as a 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.

getitems.jpg

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:

David_MA_1-1679498913628.png

 

mmollet
Community Champion
Community Champion

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!


If this post solves your issue please mark it as a solution.
wskinnermctc
Super User
Super User

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! 😂


If this post solves your issue please mark it as a solution.
mmollet
Community Champion
Community Champion

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 this post solves your issue please mark it as a 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,

 

Helpful resources

Announcements

Announcing the MPPC's Got Power Talent Show at #MPPC23

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  

September User Group Success Story: Reading Dynamics 365 & Power Platform User Group

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.  

A Celebration of What We've Achieved--And Announcing Our Winners

As the sun sets on the #SummerofSolutions Challenge, it's time to reflect and celebrate! The journey we embarked upon together was not just about providing answers – it was about fostering a sense of community, encouraging collaboration, and unlocking the true potential of the Power Platform tools.   From the initial announcement to the final week's push, the Summer of Solutions Challenge has been a whirlwind of engagement and growth. It was a call to action for every member of our Power Platform community, urging them to contribute their expertise, engage in discussions, and elevate collective knowledge across the community as part of the low-code revolution.   Reflecting on the Impact As the challenge ends, it's essential to reflect on the impact it’s had across our Power Platform communities: Community Resilience: The challenge demonstrated the resilience of our community. Despite geographical distances and diverse backgrounds, we came together to contribute, learn, and collaborate. This resilience is the cornerstone of our collective strength.Diverse Expertise: The solutions shared during the challenge underscore the incredible expertise within our community. From intricate technical insights to creative problem-solving, our members showcased their diverse skill sets, enhancing our community's depth.Shared Learning: Solutions spurred shared learning. They provided opportunities for members to grasp new concepts, expand their horizons, and uncover the Power Platform tools' untapped potential. This learning ripple effect will continue to shape our growth. Empowerment: Solutions empowered community members. They validated their knowledge, boosted their confidence, and highlighted their contributions. Each solution shared was a step towards personal and communal empowerment. We are proud and thankful as we conclude the Summer of Solutions Challenge. The challenge showed the potential of teamwork, the benefit of knowledge-sharing, and the resilience of our Power Platform community. The solutions offered by each member are more than just answers; they are the expression of our shared commitment to innovation, growth, and progress!     Drum roll, Please... And now, without further ado, it's time to announce the winners who have risen above the rest in the Summer of Solutions Challenge!   These are the top community users and Super Users who have not only earned recognition but have become beacons of inspiration for us all.   Power Apps Community:  Community User Winner: @SpongYe Super User Winner: Pending Acceptance Power Automate Community:  Community User Winner: @trice602 Super User Winner: @Expiscornovus  Power Virtual Agents Community: Community User Winner: Pending AcceptanceSuper User: Pending Acceptance Power Pages Community: Community User Winner: @OOlashyn Super User Winner: @ChristianAbata   We are also pleased to announced two additional tickets that we are awarding to the Overall Top Solution providers in the following communities:    Power Apps: @LaurensM   Power Automate: @ManishSolanki    Thank you for making this challenge a resounding success. Your participation has reaffirmed the strength of our community and the boundless potential that lies within each of us. Let's keep the spirit of collaboration alive as we continue on this incredible journey in Power Platform together.Winners, we will see you in Vegas! Every other amazing solutions superstar, we will see you in the Community!Congratulations, everyone!

September featured user group leader

 Ayonija Shatakshi, a seasoned senior consultant at Improving, Ohio, is a passionate advocate for M365, SharePoint, Power Platform, and Azure, recognizing how they synergize to deliver top-notch solutions. Recently, we asked Ayonija to share her journey as a user group leader, shedding light on her motivations and the benefits she's reaped from her community involvement.      Ayonija embarked on her role as a user group leader in December 2022, driven by a desire to explore how the community leveraged various Power Platform components. When she couldn't find a suitable local group, she decided to create one herself!    Speaking about the impact of the community on her professional and personal growth, Ayonija says, "It's fascinating to witness how everyone navigates the world of Power Platform, dealing with license constraints and keeping up with new features. There's so much to learn from their experiences.:        Her favorite aspect of being a user group leader is the opportunity to network and engage in face-to-face discussions with fellow enthusiasts, fostering deeper connections within the community. Offering advice to budding user group leaders, Ayonija emphasized the importance of communication and consistency, two pillars that sustain any successful community initiative.      When asked why she encourages others to become user group leaders, Ayonija said, "Being part of a user group is one of the best ways to connect with experienced professionals in the same field and glean knowledge from them. If there isn't a local group, consider starting one; you'll soon find like-minded individuals."      Her highlight from the past year as a user group leader was witnessing consistent growth within the group, a testament to the thriving community she has nurtured. Advocating for user group participation, Ayonija stated, "It's the fastest route to learning from the community, gaining insights, and staying updated on industry trends."   Check out her group: Cleveland Power Platform User Group

An MPPC23 Invitation from Charles Lamanna, CVP of Microsoft Business Applications & Platform

Hear from Corporate Vice President for Microsoft Business Applications & Platform, Charles Lamanna, as he looks ahead to the second annual Microsoft Power Platform Conference from October 3rd-5th 2023 at the MGM Grand in Las Vegas.Have you got your tickets yet? Register today at www.powerplatformconf.com  

August new user groups and September user group events

We wanted to take the time to celebrate and welcome the new user groups that have joined our community. Along with that take a look at the event that might be happening near you or virtually.   Please welcome:  Biz Apps Community User Group - Power Platform Community (microsoft.com) This user group is dedicated for all community members of all skill levels to learn how to get the most out of their community experience. East Michigan Power Platform User Group - Power Platform Community (microsoft.com) This is hopefully the beginning of a community, covering eastern Michigan, built around the Power Platform.  Biz Apps Community User Group This user group is dedicated for all community members of all skill levels to learn how to get the most out of their community experience.     Events to checkout:   In-Person: September 2023 Hybrid Philadelphia Dynamics 365 & Power Platform User Group MeetDynamics 365 and Power Platform Physical Meetup Hyderabad Power Platform User Group Meetup - Sept 2023 (In-Person)Manchester September 2023 In Person Meeting Virtual: Everything Dataverse, Do you know that Dataverse is more than just a Database!POWER PLATFORM MONTHLY DIGEST- SEPTEMBERBaltic Summit 2023PL-900 Power Platform Fundamentals TrainingHR and L&D transformation through Power PlatformDynamics 365 Marketing Experience User Groups - Use Cases and NetworkingPower Platform and Dual Write from Dynamics 365 F&O PerspectiveANZ D365 FinOps Team September 2023 meetup

Users online (2,736)