cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MarcelLee
Level: Powered On

Order collection after filter?

Hello,

 

Can I be sure that the order of the filtered elements of collection Filter(...) will be the same as when it was created ClearCollect(SortByColumns(...))?

Regards,

MarcelLee

1 ACCEPTED SOLUTION

Accepted Solutions
Microsoft Employee

Re: Order collection after filter?

Yes. The sorting order will be consistent with the formula provided.

BTW, the consistency will most likely be guaranteed by the SQL Server, not PowerApps, because the SortByColumns  function is delegable which means it will be run on the server *not on the PowerApps client). Please see this for more details: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-list

 

3 REPLIES 3
Microsoft Employee

Re: Order collection after filter?

Hello @MarcelLee,

Can you please clarify the intended behavior? The formula from your message does not seem to be correct.

Generally, when you're pulling a sorted list which contains identical items then the order of those identical items is not guaranteed. You will have to also sort by other columns. Example:

If your formula is ClearCollect(ColName ,SortByColumns( MyTable, "aaa", Ascending)

... and MyTable contains identical values in the "aaa" column then the order of those values in the ColName will not be guaranteed. In order to get the expected order, you will also have to sort by another column (ID or DateCreated for example).

MarcelLee
Level: Powered On

Re: Order collection after filter?

Hello @dinusc

 

Of course I make mistake in my quasi formulas.

 

During the application startup I caching the contents of the SQL table in the collection using the function:

ClearCollect(
   collectionName; 
   SortByColumns(
      sqlTableName; 
      "columnA"; SortOrder.Ascending;    
      "columnB"; SortOrder.Ascending;    
      "columnC"; SortOrder.Ascending;    
      "columnD"; SortOrder.Ascending;    
      "columnE"; SortOrder.Ascending;    
      "columnF"; SortOrder.Ascending;    
      "columnID"; SortOrder.Ascending
  )
)

Later, depending on the context, I filter this collection using the fliter function.

Filter(
   collectionName; 
   columnD = x 
)

My question is:

Will I be 100% sure of order filtered elements of collection if I sort (in deterministic way) elements of collection when I create?


The sort function is fully deterministic because the last criterion is the columnID (primary key) in the SQL table.

 

Regards,

MarcelLee

 

Microsoft Employee

Re: Order collection after filter?

Yes. The sorting order will be consistent with the formula provided.

BTW, the consistency will most likely be guaranteed by the SQL Server, not PowerApps, because the SortByColumns  function is delegable which means it will be run on the server *not on the PowerApps client). Please see this for more details: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-list

 

Helpful resources

Announcements
firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

SecondImage

PowerApps Monthly Community Call

Next Wednesday, August 21st at 8am PDT

Top Community Contributors for July 2019

Top Community Contributors for July 2019

Let's thank our top community contributors

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

FirstImage

Power Platform World Tour

Coming to a city near you

thirdimage

PowerApps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

FourthImage

Join PowerApps User Group!!

Connect, share, and learn with your peers year-round

FifthImage

Dynamics 365 and Power Platform April 2019 Release notes

Features releasing from April 2019 through September 2019!

SixthImage

Power Summit Australia 2019

August 20-23rd 2019

Users Online
Currently online: 96 members 4,906 guests
Please welcome our newest community members: