Using filter delegable predicates and non-delegable predicates in conjunction
I'm creating an app that is connected to Dynamics 365 data. Currently I'm using Dynamics 365 connector but I can change that, if makes more sense to use the CDS connector going forward.
I'm using the formula below to filter the items in the Gallery of my app:
sem_owneremail = CurrentUser.Email,
TextBoxSearch.Text in sem_dummyregarding || TextBoxSearch.Text in subject
I can see that the Filter function is on the list of Top-level delegable functions of both Dynamics 365 and CDS. Furthermore, looking at the list of Filter delegable predicates I can see that '=' is delegable to both Dynamics 365 and CDS - which is use in the first logical test of the formula.
However, 'in' (or 'StartsWith') is not delegable to either Dynamics 365 or CDS, which I'm using as the second logical test of the formula.
CurrentUser is a varibale set OnStart of the app.
My question is now:
How does these predicates work in conjunction with each other? Will the formula first evaluate the first logical test - e.g. check the email of the current user agains the records in Dynamics 365 (which is delegated to Dynamics 365) - and then run the second logical test (the search box - which is not delegated)?
If not - is it possible to do it like that?
Right now I don't have enought test data to check it. However, it would make sense (at least to me), if Dynamics 365 could do the heavylifting by filtering the initials record set - and then the user could filter these records afterwards by using the search box.
Hi, I have no experience with dynamics but powerapps evaluates formulas from the inside out. However, you may get a delegation warning anyway if any part of the formula contains a nondelegatable function. It can be ignored if the data set doesn't exceed 2000 items.