One of the spots where I see a lot of people being challenged when they first learn PowerApps is the concept of delegation. Delegation comes into play when working with data sources larger than 500 records. By default PowerApps is designed to only work on a maximum of 500 records at a time. You can increase this default setting to a maximum of 2,000, but that usually results in a noticeable performance lag in your PowerApp. To avoid that problem you should always limit the number of records you are retrieving from a data source to 500 records or less. One of the most common ways to do that is by using the Filter() function to limit the records being returned by the data source to a specific subset that you want to work on.
Using Filter() to limit the number of records retrieved from a specific data source is a great strategy, but it doesn’t always work. This is where understanding the concept of delegation becomes critical. Delegation is the process of having the data source filter the records before they are returned to the PowerApp instead of having the PowerApp apply the filter directly. This is complicated by the fact that not all data sources support delegation and different data sources support different logical operators for delegation. You can find a list of delegable data sources and operators here: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-list. But even this documentation can lead to confusion.
The confusion comes in from some footnotes in the ‘Filter and LookUp delegable predicates’ section of the documentation. Footnote 3 on the logical operators reads, “For numeric columns, all operators can be delegated. For ID columns, only the ‘=’ can be delegated. Date columns can’t be delegated.” This would imply that all the operators should work with a Boolean value of true or false. But in my experience Boolean columns are treated the same way that ID columns are treated. The only operator that works is ‘=’. If you try to use a Filter statement where a Boolean value is not equal to something you will see that it issues a delegation warning. The following screenshot shows an example.
But if I change the formula to the Boolean being equal to true then the delegation warning goes away and the function becomes delegable. See the screenshot below.
The moral of the story is that understanding the intricacies of delegation is critical when building PowerApps.
If you’re struggling to find help or keep up to date with Microsoft SharePoint then I will build you a basic SharePoint 2013/2016/2019 Dev farm in Azure.
I am now a registered Freelancer on Collab365 MicroJobs – the brand new marketplace dedicated to Microsoft professionals.
Here are 4 reasons that the Collab365 Team have spent months building the site:
- You often need expert Microsoft help just for a couple of hours.
- You can’t keep up with everything Microsoft is releasing.
- You find it hard to find Microsoft experts on other non-dedicated sites. There are just too many other subjects covered.
- You don’t have time to go through a lengthy interview process.
I personally love the concept and have actually just posted a MicroJob. Here are the details…
How I can help you …
Building out a SharePoint farm to use as a Dev/Test environment can be a long tedious process. It also usually requires hardware resources that aren\’t always available. Using Azure you can spin up new VMs relatively quickly, but installing and configuring SharePoint can still take a significant amount of time. There are pre-built Azure templates, but these often don\’t provide the flexibility needed to configure a specific environment.
Using a combination of PowerShell and Desired State Configuration (DSC) we will design and build a basic server farm consisting of three (3) virtual machines (AD, SQL, and SharePoint) to your specifications. The farm will include the following:
- One (1) Active Directory domain controller configured to the domain name of your choice containing ten (10) Service accounts to support installation of SQL and SharePoint
- One (1) SQL server configured using a domain service account to support SharePoint
- One (1) SharePoint 2013, 2016 or 2019 server
- Up to three (3) Web Applications
- Up to ten (10) Site Collections
- Core Service Applications (Application Management, Managed Metadata, Search, Secure Store, State, Subscription Settings, Usage, & User Profile)
- Configuration of Office 365 hybrid
- Configuration of SQL reporting services
- Configuration of Office Online Server
How does it work and what about payment?
Paying for online services with people that you don’t know can be worrying for both parties. The buyer often doesn’t want to pay until they’re happy that the Freelancer has completed the work. Likewise the Freelancer wants to be sure they will be recompensed for their time and commitment. Collab365 MicroJobs helps both the buyer and the Freelancer in these ways:
- The buyer pays up front and the money is securely held in the MicroJobs Stripe Connect platform account.
- The Freelancer can then begin the work in the knowledge that the payment has been made.
- Once the buyer is happy that the work is complete and to their satisfaction, the funds become available to the Freelancer.
- There’s even a dispute management function in case of a disagreement. But it won’t on my MicroJob! As long as we agree what’s needed up front and keep talking the entire way through, you won’t be disappointed.
Note: Once I’ve completed the work, I’d love it if you could write a review for me. This will allow others to see what a fantastic job I did for you.
What if we need to add extra’s to the job after I’ve started?
It’s really easy for us to discuss your extra requirement (using the chat feature on the site) and for us to agree a price and add it to the order.
If you’d like me to help you, here are the steps to hire me …
- View my MicroJob.
- On that page click the “Buy” button.
- You’ll need to register as a buyer on the MicroJobs site, but this only takes a minute and will also allow you to purchase MicroJobs from other awesome Freelancers.
If you need to contact me then please use the “contact” button and ask me any questions before purchasing.
For the last 10 years July 1st has always been a day that I both looked forward to and dreaded. I’ve looked forward to it because its anniversary of the day that I was awarded the honor of being named as a Microsoft Most Valuable Professional for the first time. But I’ve also dreaded it. Because no matter how many presentations you’ve made or how much you’ve answered questions on the forums or active you’ve been in the community, you always wonder if its been enough. But then sometime around mid-day the email arrives saying that you have been re-awarded for another year as an MVP. That email arrived for me today around 11:40 AM (9:40 AM Redmond time). So for the 11th year Microsoft has decided that my contributions to the SharePoint and Office 365 community were sufficient to earn me an MVP award again for the category of “Office Servers and Services”.
But this coming year will be a little different than previous years because I plan to move towards partial retirement from my consulting career. Before you get the idea that I’ll be less involved as an MVP, think again. Being an MVP has always been about your contributions to the technical community over and above your regular job. So in the past I often took vacation time to speak at conferences or spent time on the forums before and after work. Since I won’t be focusing on “earning a paycheck” anymore I’ll be able to devote even more time to community activities. I’m expecting my contributions to the community will go up as I move to retirement, not fade away.
So, I make this offer to Community Leaders
If you are looking for a SharePoint or Office 365 speaker for your event, and you can help me defray travel expenses, I will be willing to travel almost anywhere, at anytime to share what I have learned over the years.
SharePoint, Office 365, and Dynamics CRM are subjects that I’m passionate about. And my moving towards retirement is just a partial thing. I still plan to continue to do consulting and training for many years to come. If consulting/training opportunities come my way I will continue to work. Because that’s now I keep learning new things. But if paying jobs don’t happen to come my way then I’ll live off my retirement savings and spend even more time speaking and answering questions.
So here’s to another year as an MVP. I think it will be an exciting one.
I use Azure Virtual Machines (VMs) a lot for demos and testing. Recently when I tried to connect to some of my VMs using remote desktop I got a error message. The message read “An authentication error has occurred. The function requested is not supported.” Researching this error on the Internet led me to a security update applied to Windows 10 and Windows Server 2016 that was rolled out on April 17, 2018. This update includes an update for the Remote Desktop Client (RDP) to fix a CredSSP authentication protocol vulnerability. After the update is applied you can no longer RDP to any machine that isn’t fully updated. My problem was that my Windows 10 laptop had been updated, but my Azure VMs had not been updated.
I’ve seen several fixes on the Internet to workaround this problem temporarily using registry settings or Group Policy Objects (GPO). Unfortunately, the only Active Directory server involved was also on Windows Server 2016, so there was no way to attach to it make registry changes or modify GPO settings. But I was able to find another workaround that let me access the affected servers via RDP so that I could update them.
The trick was to find a server or workstation that hadn’t been updated yet. In my case I had a local Windows 8.1 Hyper-V VM that I hadn’t updated in a while. Using that I was able to access the affected VMs and run Windows Update. Once the update was applied I could RDP into them from my Windows 10 laptop.
I also found that I could still RDP from my iPhone to the affected servers to apply the update. I admit that the screen size is pretty small and difficult to work with, but it is possible. So if you don’t have a workstation or server that hasn’t been upgraded recently you can try to RDP in from your non-Microsoft phone. Note: I didn’t try using Android, but I assume it will also work.
Last week I presented a talk to the Cincinnati SharePoint User’s Group entitled, “Protecting your Content: Demystifying Data Loss Prevention (DLP)
in SharePoint 2016”. I couldn’t make it to the user group in person, but they were nice enough to let me present it via Skype. At the end of the talk I promised to post my slides.
You can download a read only copy of the slides from the talk using the link below:
Protecting your Content: Demystifying Data Loss Prevention (DLP)