cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Emily2
Frequent Visitor

Struggling to filter my SharePoint List due to delegation issues and 2000 row limit

I'm really struggling to get my head around and resolve this delegation issue / 2000 rows of data limitation.

 

Summary of my app:

  • My app is to help a team manage their tasks (emails coming into a central mailbox)
  • My data source is a SharePoint list
  • When an email arrives into the central mailbox, a power automate flow creates a row in the SharePoint list with the email details and sets the stage to "Ready for triage"
  • Each row in the SharePoint list is a separate task in the app
  • Users check the app daily and allocate tasks to themselves to work on
  • If they find the task isn't relevant (spam, marketing, etc.) they can set the stage as "Not relevant" and the row will be deleted from the SharePoint list. Otherwise they will work on the task
  • The app has various different screens giving the user different views of the data. There are screens showing:
    • All open tasks (with a search function)
    • All tasks awaiting allocation
    • All tasks in progress
    • All tasks that have been handed over to another team
    • All tasks that have been returned from the other team for completion
    • Tasks that have been closed within 30 days, with a search function (in case they want to refer back to something they've done, after this time all "Closed" tasks will no longer appear in the app but can obviously still be found in the SharePoint list if needed)
    • The user their tasks only

Because of the way the data needs to be filtered for some of these screens, I got a delegation warning. To combat this I used a collection which removed the delegation warning and I therefore thought the issue with the 500 row limit was resolved. However, once my SharePoint list reached over 500 rows, the screens using collections stopped filtering for all the data and tasks "disappeared" from the app. I now understand that collections are non-delegable so even though the delegation warning disappeared it was actually still going to be an issue.

For the short-term I've increased the row limit to 2000 and the app is working like normal again, but this is only a short term fix. After just over 1month of use there are already 919 rows of data! I don't have long to find a fix.

 

I've tried using a ForAll but I couldn't get it to work. I've also tried creating a collection on a filtered dataset and that didn't work either. In both cases I didn't get an error on my formula it just didn't return any data even though it should have (at least, I was expecting it to).

 

I was going down the route of "there should never be more than 2000 open tasks" so I was trying to create a collection of just open tasks and then filtering on this in the gallery.

I've seen solutions where there are multiple collections collated into one large collection. So the formula looks at the row ID and creates a collection for rows 1-2000, then 2001-4000 etc. But this wouldn't work for me, I don't think, for various reasons.

 

The screens I need help with are:

  • All open tasks (with a search function)
  • All tasks in progress
  • Tasks that have been closed within 30 days (with a search function)

For the two screens with the search function, it's including the search function results in the gallery items filter that's causing the delegation issue. With the 'All tasks in progress' screen it's the User.Email <> Blank() that's causing the issue.

 

Currently on all three screens the OnVisible property is set to:

ClearCollect(col_TaskData, TaskData)

 

Then the All open tasks Gallery Items filter is:

Filter(col_TaskData, Status = "Open", 'Search.Text'.Text in 'Sender Email' || 'Search.Text'.Text in Title || 'Search.Text'.Text in User.Email)

 

The All tasks in progress Gallery Items filter is:

Filter(col_TaskData, Stage.Value = "In progress", User.Email <> Blank())

 

The Tasks that have been closed for 30 days Gallery Items filter is:

Filter(col_TaskData, Stage.Value = "Responded" || Stage.Value = "Complete", 'Response Date'+31 > Today(), 'Search.Text_1'.Text in 'Sender Email' || 'Search.Text_1'.Text in Title || 'Search.Text_1'.Text in User.Email)

 

What can I do to ensure that once the data source is >2000 rows, these three screens still show the tasks they're supposed to?

1 ACCEPTED SOLUTION

Accepted Solutions
Rusk
Super User
Super User

Hi @Emily2 

 

Is the data set growing as items are completed?  You mentioned it seemed unlikely that your app would ever be needed for more than 2k items at a time, so it seems the main issue is that the list continues to grow.  As time passes, the "Completed" items will exceed 2k.

 

I've addressed a similar use case for several apps by creating an "Archive" SharePoint list to move all my completed items to via Power Automate:

Rusk_0-1679335311245.png

 

Something similar could work for you.  You can create an automated flow that checks if an item has been completed for over 30 days.  If so, copy it to your new "Archive" SharePoint list by creating the item there.  Then, delete it from your main list (which is driving your app).

 

In this way you manage your data instead of reworking your app.  Just an idea!  If this won't work for you, please let me know and I'll look at your formulas instead

View solution in original post

5 REPLIES 5
Rusk
Super User
Super User

Hi @Emily2 

 

Is the data set growing as items are completed?  You mentioned it seemed unlikely that your app would ever be needed for more than 2k items at a time, so it seems the main issue is that the list continues to grow.  As time passes, the "Completed" items will exceed 2k.

 

I've addressed a similar use case for several apps by creating an "Archive" SharePoint list to move all my completed items to via Power Automate:

Rusk_0-1679335311245.png

 

Something similar could work for you.  You can create an automated flow that checks if an item has been completed for over 30 days.  If so, copy it to your new "Archive" SharePoint list by creating the item there.  Then, delete it from your main list (which is driving your app).

 

In this way you manage your data instead of reworking your app.  Just an idea!  If this won't work for you, please let me know and I'll look at your formulas instead

Emily2
Frequent Visitor

Hi @Rusk 

Yes thank you for your answer. I had considered this as an option. It should work, I just wondered if it was the best way. There's a Power BI dashboard that uses the SharePoint list data to report back to management on tasks created / completed by day/month/quarter/year etc. So if I was creating two datasets I would need to combine them for the dashboard to still reflect the information they want to see. I can figure this out.

 

Aside from this, I wondered if there was an alternative solution that would work that I had overlooked, or already tried but implemented slightly wrong hence why it didn't work. It doesn't seem so, but also, I've only been using the Power Platform since summer last year so thought I'd put the problem out there for opinions from those more experienced than me! I've only got about a month to resolve this so might have to get started on the above solution sooner rather than later. Thanks for validating what I thought I might need to do!

Hi @Emily2 

For your formulas, as "in" is not delegable, another potential option would be to use "StartsWith".  But this would only return true if your data text string actually starts with your search text string, while "in" returns true if your search text string is found anywhere within your data text.

All open tasks Gallery Items filter:

Filter(TaskData, Status = "Open" && (StartsWith('Sender Email', Text(Search.Text)) || StartsWith(Title, Text(Search.Text)) || StartsWith(User.Email, Text(Search.Text))))

 

Closed for 30 days:

Filter(TaskData, (Stage.Value = "Responded" || Stage.Value = "Complete"), 'Response Date'+31 > Today(), (StartsWith('Sender Email', Text(Search.Text_1)) || StartsWith(Title, Text(Search.Text_1)) || StartsWith(User.Email, Text(Search.Text_1))))

 

Emily2
Frequent Visitor

Hi @Rusk 

Yes I looked into this too. This would probably work fine for if someone is searching for an email address, but with the "Title" of the task they will almost 100% of the time search for text within the title and not the start of the title. And although I've given them the option of searching by email, I would think the most common way of searching would be by text within the title. Thank you though.

@Emily2 

There is this work-around that allows users to search columns, including multiline columns, well beyond the 2000 delegation limit: https://powerusers.microsoft.com/t5/Community-App-Samples/Delegable-Large-SharePoint-List-App/td-p/2... 

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages