Hi PowerApps Community,
Not too sure if you would be able to help but is there a way i can optimize the code below, its running super slow and was wondering if there is a way to speed it up . so pretty much what this code is doing is checking if the users full name is in a list then it will display all results else if the user name isnt in that list then it will display specific results or another set of specific results. i know the code is really complex but any help to make it run faster would be great !
If(User().FullName in '[source]'.Staff_Name, SortByColumns(Search('[source]',Dropdown2_1.Selected.Value,"Source_Name"),"Source_Name"), Filter(SortByColumns(Search('[source]',Dropdown2_1.Selected.Value,"Source_Name"),"Source_Name"),LookUp('[source]', Name = Source_Name && (Business_Owner = User().FullName || Support_Contact = User().FullName || Support_Contact_2 = User().FullName), Name) in Source_Name Or Source_Name in ForAll(Filter('[source]',Data_Integrity_Test_Case_Id in ForAll(ForAll('[source]', LookUp('[source]', Data_Integrity_Test_Case_Id = Test_Case_Guid)),LookUp('[source]',Source_Name = Name && Business_Owner = User().FullName || Support_Contact = User().FullName || Support_Contact_2 = User().FullName,Test_Case_Guid))).Data_Integrity_Systems_Id,LookUp('[source]', Source_Guid= Data_Integrity_Systems_Id, Name))))
Or even just this part of the code
Filter(SortByColumns(Search('[source]',Dropdown2_3.Selected.Value,"Source_Name"),"Source_Name"),Source_Name in ForAll(Filter('[source]',Data_Integrity_Test_Case_Id in ForAll(ForAll('[source]', LookUp('[source]', Data_Integrity_Test_Case_Id = Test_Case_Guid)),LookUp('[source]',Source_Name = Name && Business_Owner = User().FullName || Support_Contact = User().FullName ||Support_Contact_2 = User().FullName,Test_Case_Guid))).Data_Integrity_Systems_Id,LookUp('[source]', Source_Guid= Data_Integrity_Systems_Id, Name)))
Thanks in advance!
Solved! Go to Solution.
Hi @Shafeel_07 ,
Do you want to the query run faster?
I think you can use variable to have a try and test it whether this method is ok.
In the OnStart you can create a variable that User() record and then you can use the variable in the Filter. Here is an example of what you can add to the OnStart.
Note that in design mode the OnStart is only triggered when the app is first loaded, so you will need to save, close and re-open the app to get the variable set after making the change.
Set(gvCurrentUser, User())
Then in your formula expression change "User()" to "gvCurrentUser".
These blogs may be helpful for you:
more details about optimize in powerapps:
Optimize canvas-app performance in PowerApps
Hope this can be helpful.
Best Regards.
Yumia
Hi @Shafeel_07 ,
Do you want to the query run faster?
I think you can use variable to have a try and test it whether this method is ok.
In the OnStart you can create a variable that User() record and then you can use the variable in the Filter. Here is an example of what you can add to the OnStart.
Note that in design mode the OnStart is only triggered when the app is first loaded, so you will need to save, close and re-open the app to get the variable set after making the change.
Set(gvCurrentUser, User())
Then in your formula expression change "User()" to "gvCurrentUser".
These blogs may be helpful for you:
more details about optimize in powerapps:
Optimize canvas-app performance in PowerApps
Hope this can be helpful.
Best Regards.
Yumia
Thank you sooo much !!! , This has helped alot !!
User | Count |
---|---|
252 | |
126 | |
104 | |
50 | |
49 |