NACS 2019 – Wrap up and Slides

The North American Collaboration Summit (NACS) concluded last weekend in Branson, MO. This is one of the great small SharePoint conferences in the US and I always look forward to attending. It fell again this year on the weekend before the MVP Summit in Redmond at Microsoft, so travel arrangements were complex.  But it was well worth the effort. Most of my sessions were well attended and the one highly technical session that had a low turnout probably had the highest interest from the attendees who were there.  It was a pleasure to feel that I was sharing information that people really wanted to learn about.  It was also great to spend time with a number of long time friends who were also presenting.

I promised to make my slides available, so I’ve uploaded them here.  Sorry for the delay, but getting anything extra accomplished while at the MVP Summit is almost impossible. If you have any follow-up questions please email me at pstork@dontpapanic.com.  You can download a copy of the slides from each talk using the links below:

Intro to SharePoint 2019: What’s New

Desired State Configuration (DSC): Controlling SharePoint Deployment in Azure VMs

Intro To OneDrive NextGen Sync: What is it, how it works, and can I manage it?


Filter on a Boolean in PowerApps

PowerappsOne 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.

PowerApps1Blog

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.

PowerApps2Blog

The moral of the story is that understanding the intricacies of delegation is critical when building PowerApps.

Re-awarded as an MVP for the 11th Year

MVP_Logo_Secondary_Blue288_RGB_300ppiFor 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.

SharePoint Saturday – Cincinnati

SPSCincinnatiI had a small but enthusiastic group at my session this past Saturday at the SharePoint Saturday Cincinnati event. We had an excellent discussion about the planning that organizations should do before they implement or upgrade a SharePoint environment.  I promised attendees that I would post my slides by today before I got busy with other things.  You can find a link to the session below…

Implementing SharePoint: Failure to Plan is Planning to Fail (Slides)

One of the most common mistakes I’ve seen clients make when implementing SharePoint is to not spend enough time review a list of seven planning topics that are critical to the success of every SharePoint project. We’ll review what questions you should ask and why each area is critical to project.
The seven areas include:
• Governance
• Security
• Content Classification (Taxonomy/Folksonomy)
• Physical and Logical Architecture
• High Availability/Disaster Recovery
• Staffing
• Training/Communications

When Implementing SharePoint: Failing to Plan is Planning to Fail – Pt.2

plan-to-fail1Benjamin Franklin is reported to have said, “If you fail to plan, you are planning to fail!”
I’ve seen this scenario – the failure to plan – play out at many companies, especially when implementing or upgrading SharePoint environments.
Implementing or upgrading a product like SharePoint, that is designed to empower information workers to do things for themselves, requires detailed planning.
Why?
Because empowerment​ does not come from a “one size fits all” product or solution.
SharePoint can be used to tailor a solution and deliver business value to an organizations’ technical environment. But that kind of tailoring requires careful planning. Otherwise, an organization will end up with a product that is implemented well, but does not fulfill the strategic goals they’ve set for the business.
In my first post of this series, we evaluated the reasons why organizations do not spend enough time planning before implementing SharePoint. (Read part 1)  In part two of this series, we’ll identify at some of the planning tasks that are overlooked when planning a new SharePoint implementation.

Governance

Governance helps you determine how SharePoint will be used to make your organization better. There must be a shared vision and the appropriate controls in place to make that happen.

Goals

  1. Develop a shared strategic vision ​
  2. ​​Reach a consensus on how SharePoint will be used

Key Questions

  • Is our corporate culture comfortable with a self-service model?
  • What will we control using Policies versus customization of SharePoint?
  • What business needs will SharePoint address?
  • How will policy decisions be communicated, updated, and enforced?

Security

How SharePoint security is implemented must be done in accordance with corporate culture. If not, content won’t be available to the people that need it or won’t it be secured.

Goal

  1. Decide whether or not security administration will be centralized or delegated

​​Key Questions

  • Do business users just manage the content or actually own the content they produce?
  • ​Which is more important: timely access to content or guaranteed security?
  • Will training be provided for users who need to manage their own content?

Taxonomy/Folksonomy

If information architecture isn’t planned, content will go in, but it won’t be efficiently used after it is first stored. A good organizational methodology is critical to your success.

Goal

  1. Plan how content will be organized in order to make it easy to find

Key Question​

  • How will we implement a structure for organizing content?
  • How can users surface content that is important to them?

Architecture

Upfront planning will result in a physical system that maximizes performance while minimizing costs. It must also be flexible and grow as usage increases.

Goal

  1. A​chieve a balance between cost and performance

Key Questions

  • What services will we use and where will they be located?
  • How important is search in our environment?

High Availability (“HA”)/Disaster Recovery (“DR”)

In most organizations, SharePoint becomes a mission critical application when it is implemented well. A service that can’t be depended upon can be worse than one that is poorly implemented.

Goal

  1. Build an environment that can be depended upon as a critical application.

Key Questions

  • How much downtime can we tolerate?
  • How much data can we afford to lose?
  • How much will HA and DR cost?

Staffing

SharePoint focuses on providing a self-service environment. But, having the right staff in place to maintain the system is still a critical factor to your success.

Goal

  1. Plan adequate staffing to support implementation of the other planning decisions.

Key Questions

  • Centralized security will require more staff for versus delegated security
  • How will our information architecture be maintained and enhanced over time?
  • What level of patches and fixes will be applied? All Cumulative Updates or just Service Packs?

Training/Communications

Even if you build the perfect system, people won’t be able to effectively use it without the appropriate training. You must develop a communications and training plan.

Goal

  1. Increase user adoption and satisfaction

Key Questions

  • Develop and leverage local champions to increase knowledge and acceptance.
  • What is the right level of training and communications for your organization?

Spending some time planning will lead to a successful implementation that can transform the way your company collaborates and shares information. And that’s what you started your project for in the first place, right?