Determining ‘modernity’ for SharePoint

Over the past 12 months, Microsoft have been steadily increasing the scope of the Modern UI for SharePoint. The reach and maturity of the Modern UI and it’s accompanying Development Framework has extended to the point whereby we are making the switch from “classic” to “modern” SharePoint. I know that Microsoft state that:

We’re not deprecating the “classic” experience, both “classic” and “modern” will coexist.

but it is hard to really believe that “classic” SharePoint will remain in the long-term. A key driver for us is that modern sites are the only type available to Groups and Teams and we believe that Teams is the future of collaboration in Office 365. Therefore as part of our drive to Groups and Teams we need to modernize our existing templates. As part of this drive I have been working on a definition of modernity for sites.

Determining ‘modernity’

We consider new sites to be Modern when:

We consider pages to be Modern when:

  • Pages can be created using the “modern” page functionality through the “Site Pages” feature
  • Pages cannot be not creating using Publishing or Wiki features
  • The SharePoint Framework and Office PnP is used for customization

We consider our own apps to be Modern when:

  • They are created using and compatible with the SharePoint Framework and Office PnP

We consider sub-sites to be Modern when:

  • They are successfully transformed from a classic sub site to a modern team site
  • The welcome (home) page uses a modern page

We consider existing sites to be Modern when:

  • List and libraries use the “New experience” by default
  • Pages can be created using “modern” page functionality through the “Site Pages” feature
  • Pages cannot be not creating using Publishing or Wiki features
  • The welcome (home) page uses a modern page
  • Customizations are applied using the SharePoint Framework and Office PnP
  • Our own included apps are modern

We consider the Tenant to be Modern when:

  • User initiated site creation results in the creation of Modern sites
  • List and libraries use the “New experience” by default
  • Comments are disabled in Site Pages as Yammer is our preferred solution for comments

 

 

Advertisements

Goodbye faithful survey app

Microsoft Forms is now in Public Preview. It’s mobile ready and accessible by external users. For me this means the end of the line for the faithful SharePoint Survey App.

survey form org

Coupled with Flow, Forms can handle basic automation. It can be connected to Yammer!

form flows

The solution for Forms with ‘sophistication’ is ‘PowerApps + Flow + SharePoint’ as stated in the FAQ article:

Microsoft Forms is not a replacement for Microsoft InfoPath.

Microsoft InfoPath is being replaced by SharePoint Lists, Flow, and PowerApps – modern solutions for digitising traditional company forms, automating workflows, and transforming business processes.

Additionally, I can see the ‘Forms + Flow’ or ‘PowerApps + Flow + SharePoint’ combinations taking workloads away from the Access App which is also on the path to retirement.

Finally, testing Forms in our Tenants has revealed that:

  • The entire Tenant needs to be in First Release to access the Preview
  • All users are licensed for the product by default
  • External access is enabled by default

 

 

 

 

 

 

 

 

 

Embedding Yammer threads into SharePoint pages

Recently I was asked:

Can you tell me if it is possible to embed a specific conversation in a site? I’ve tried every combination on the “Open Graph” possible to get a specific conversation thread to embed. I can’t seem to figure it out. And I’ve read your blog post and I don’t think you answer that here.

Questions like this one arise as ‘Threads’ are not exposed through the Yammer Embed widget or mentioned in the embed documentation. Hacking at some embed code to change the ‘Feed type’ to ‘thread’ and the ‘Feed ID’ to the ‘threadId’ of the specific conversation would be the logical approach. Alas this does not work. If you are a developer and fancy rolling up your sleeves there is a REST API item for threads but you’ll need to handle and style the resulting JSON payload which feels like too much work.

My recommended approach is to use Topics as they can be easily applied and surfaced in an embed feed. Topics themselves are a relatively undocumented feature but are immensely useful. For example we have their use embedded in our business process.

mm use case

I digress, let’s get back to the answering the question.

When using topics to embed a specific thread I recommend that you use the threadId as the topic label as that saves you from inventing a word that describes the thread. Topics are also useful as you can then easily aggregate threads together at a later date.

  1. Obtain the threadId
    • Locate the thread you wish to embed
    • Selecting the date is a quick way of getting to the thread and its Id
    • Grab the threadId of the thread from the address bar
    • The URL of the thread in the address bar will be something like: https://www.yammer.com/yournetwork.com/#/Threads/show?threadId=751952638. You need the last part e.g. 751952638
  2. Add the threadId as a Topic label.
    • Threads are a view of a single conversation
    • Select the first message in the thread and add the threadId as a topic label
  3. Get the feedId of the Topic label
  4. Use the feedId in your embed code (remember to set the ‘Feed type’ to ‘topic’)

 

Yammer and Teams – better together for communities and knowledge

I firmly believe that Yammer and Teams are complementary products. As an example, consider our situation.

How we use Yammer

We use Yammer as the focal point for our 80 or so communities of interest aka Practices. These communities represent the combined knowledge and talent of the 16,000 staff at Mott MacDonald. Those communities can be large, with in excess of 1000 members, whilst others are small. Every community is treated equally as their common goal is to open opportunities through connected thinking. Within these communities, we see three collaborative patterns:

#1 Communities work out loud

The community works out loud sharing their hopes, fears, aspirations and knowledge in the Yammer Group. They make the most of serendipitous discovery. i.e. the ‘classic’ Yammer use case. They use an associated SharePoint site to manage their content which in turns enables wider discovery through Search and Delve.

#2 They form teams to get things done

Teams form within the community that focus upon particular ideas, topics, activities or events. More often than not they need somewhere to meet, work and converse away from the main community. As their work progresses they share progress back into the main community until finally they are ready to publish the results of their efforts. Sometimes these teams are incubators for new communities and we allow them to undergo their own virtual Darwinism with the survivors emerging as new communities. For events, the group responsible need to establish communications streams and areas to share that allow them to focus upon preparation and delivery of the event.

#3 They govern as a network

We require that each community be supported by a small team – typically a pairing of senior influencers and emerging stars. Their role is to coordinate, manage and cajole the activities of the community. Each team feeds into a network of Champions and an overarching Board of Group Sector Leaders responsible for the entire community ecosystem. The teams, champions and board need somewhere to occasionally work, say to plan a new initiative, meet, or develop reports but most of their time is spent within the communities themselves.

It works but could benefit from improvement…

Before the arrival of Teams and Yammer integrated Office 365 Groups we would have catered for patterns 2 and 3 through a hotch potch of spaces. Some teams would use separate Yammer groups, others combinations of SharePoint and Yammer or a mixture of collaboration over email with a SharePoint site or someone’s OneDrive for the content. None of the modes has been particularly productive or effective. Though it has been a struggle to put a finger on why. Perhaps this was down to a shift in the style of the conversations (to faster, more clipped, less formal), a shift in the team dynamic, reduction in size or the dilution through distribution of the content and conversations.

Capitalising on teams

The arrival of Teams gives us the opportunity to take a different approach

#1 Using Teams to support community governance

We could form a single private Team for the management of the communities. Privacy is considered important for this team for operational reasons but we will encourage them to be more open. Using a Team has the advantage that it is easy to switch from being private to public. In the Team, we could create a Channel per community to act as dividers for the content and conversations but with 80+ to look after coupled with low volumes content and conversation we might not need to be that granular. In fact, clustering the teams together into sectors would be more likely and easier to adopt. We could form a channel for the Champions and one for the overarching Board. In doing so we would reserve the General channel for any other business. By placing the management teams, Champions and Board into one large Team they should find it easier to share experiences, coordinate activities and become more cohesive as a unit. The shared OneNote with a section per Channel will help establish divisions (where required) and they can use it for their meeting notes, knowledge capture etc.

#2 Using Teams to bolster teamwork

On demand, we will form a public Team per community to host the team. If the activity is particularly detailed we may even create a Team for that specific purpose. Each team will be given a Channel and members can take advantage of the awareness features like the publishing of Team Meetings and group calling to stay in touch and keep up to date with other related items or areas (teams) of interest. The awareness features and shared permission model will help to reinforce the binding through the community. The simplicity of the SharePoint site associated with the Team will help people focus on the work in progress. In turn this will serve to reinforce the position of both the communities SharePoint site and our global Document Centre as the repositories for approved, published knowledge and information. This will allow the communities to review and augment content at the most appropriate time with structured metadata to enhance its discovery.

#3 Connected communities and teams

We will add to each Team a tab that displays the associated Yammer Group for the community. This is possible using the website tab option and adding the URL to the Yammer Group. (It would be easier if Yammer was one of the published tabs). This will provide Team members with an easy way of pushing information into and pulling from the Yammer Group as well as keeping them in touch with wider conversations. Similarly we will include a SharePoint Document Library tab that links to the Yammer Groups SharePoint site. Finally we will wire up the Yammer Connector to push both announcements and relevant topics into the conversations. An added benefit for those normally trapped in Outlook is that they could then use the Team app as their ‘single pane of glass’ into the communities which will help them transition away from closed email centric collaboration.

We will continue to use Yammer for the communities and in doing so use Yammer in the way it is intended. It also overcomes two key sticking points:

  1. the scale issue faced by Teams as a team is limited to no more than 999 members.
    • By being consistent with our architecture our staff should find it easier to understand the “how” and “why”.
  2. the need to share the Office 365 Group identity between the Team and Yammer.
    • By using the connectors and tabs we overcome the invisibility of the Team’s Office 365 Group to Yammer and it also neatly focuses the team on not competing with Yammer.

Overheads will remain

Introducing Teams will generate an overhead three manual requirements to:

  1. manage the membership of the Team
    • We will look to link up our dynamic groups service which is driven from staff profiles in Delve.
  2. manually add Yammer as a tab and set up the connector
  3. persevere with the currently sub-optimal push-pull of content from the Yammer Groups associated SharePoint site
    • The possibilities for management, push-pull etc. will improve with the third wave of Yammer’s integration with Office 365 Groups. At that point we will look to upgrade the Yammer Group to a connected Office 365 Group, adjust the membership mechanism to use the Office 365 Group identity etc. In doing so we might need to conduct a one-off migration from the existing SharePoint site to the new connected site as this would reduce friction around the push-pull and user experience.

Yammer and Teams – better together

Through combining Yammer and Teams we should be able to form a neat constellation of communities and supporting teams that connect our thinking.

yammerplusteams

(I’m sure there is a more artistic way to represent this. A management ‘Team’ as the Sun at centre, orbited by a ring of Yammer Communities, each with a moon or several moons of ‘Teams’ and it’s SharePoint site.)

 

 

Announcing the death of Site Mailboxes in SharePoint Online

In case you missed it: Microsoft have announced the demise of Site Mailboxes in SharePoint Online. The timeline is challenging. You have around 4-weeks before you’ll be prevented from creating new Site Mailboxes.


We’re removing Site Mailboxes in SharePoint Online

MC92090
Published On : 31 January 2017
Expires On : 15 September 2017

Beginning March 2017, new SharePoint Online organizations will no longer have access to the Site Mailbox feature, existing SharePoint Online organizations will no longer be able to create new Site Mailboxes; however, any Site Mailboxes provisioned prior to March 2017 will continue to function.

How does this affect me?

You are receiving this message because our reporting indicates your organization has one or more Site Mailboxes available. Beginning March 2017, your users may no longer create new Site Mailboxes.

In September 2017, we will have a process in place allowing you to transition your existing Site Mailbox site to an Office 365 Group. We will communicate again in June 2017, via Message Center, with more details.

What do I need to do to prepare for this change?

If you are using the Site Mailbox feature in SharePoint Online, you should consider transitioning to Office 365 Groups, to support email-centric collaborative scenarios.


I’m not “Doughboy”, I’m a real person (and it’s not Yammer’s fault)

There have been several threads emerging regarding missing profile images in the Office 365 Suite Bar (example thread). The problem seems to centre around the fact that, whilst users add their picture to Office 365, it fails to appear when using services like Yammer or Planner.

To illustrate:

sharepoint
SharePoint

Based on the code, my picture is being obtained using the email variable from:

https://outlook.office365.com/owa/service.svc/s/GetPersonaPhoto?email=
yammer
Yammer

It’s the same in Yammer. In fact it’s using the same chunk of code.

planner1
Planner (Suite Bar)

Hmm… I’m “Doughboy” in Planner yet my avatar just below the Suite Bar shows me.

planner3
Planner (Avatar)

Interestingly the code is obtaining my avatar from a different location to the one used by SharePoint and Yammer:

 /.onmicrosoft.com/Groups/GetUserPhoto/?userId=
powerbi
Power BI

From watching the page load using Edge Developer tools, it’s my interpretation that Power BI is obtaining my picture from another location:

https://wabi-north-europe-redirect.analysis.windows.net/powerbi/resource/userPhoto/?huid=1083448852
home
Office 365 Home

Finally, I’m “Doughboy” in Office 365 Home. 😦

doughboy

To me the appearance of “Doughboy” and variable end points is a sign that there is an inconsistency in the Suite Bar wiring.

In some of the threads on the subject, Yammer has unfairly taken the blame for the appearance of “Doughboy”. I believe it is not a Yammer issue and it is all about the wiring behind the scenes. In addition to the examples at the start of my post I’ve seen other mismatches – my current profile image in Office 2016 Apps, with the exception of Outlook, is different to the one in the Office 365 Suite Bar *but* Office 365 ProPlus should be wired up via Azure AD.

word
Word 2016
outlook
Outlook 2016

I guess to some of you reading this you might be wondering why the fuss in the first place, it’s just a picture after all. My argument is that we all readily identify with our own image. Its appearance shows that this is our instance of SharePoint, or Yammer post. It helps us, probably at a subconscious level, to make a personal connection. It also seems a feature of human nature that little inconsistencies, especially in our appearance, can really make us question what is going on. When we are trying to get people to adopt Office 365 we tell them about the behind the scenes magic that wires content to people, people to content and it is a consistent experience on any device, anytime, anywhere. Variability in the profile picture, and the presentation of the Suite Bar for that matter, undermines the consistency point and leads people to question the wiring.

In producing this post, I conducted some research into how it should work. The Suite Bar *should* be getting your profile picture from the Office 365 Directory Service, which in turn goes out to Exchange Online to get it, as that is where the image is stored when you upload it [1]. Once in Exchange, your image is pushed down to SharePoint for use there [2]. SharePoint can use one of three renditions of the image based on the component that needs it. The examples from the start of my post show that the services then call differing end points which in turn *should* all lead back to the image in Exchange Online.

In the case of Yammer, it gets its profile information from the Office 365 Directory Service but it only takes the User items [3] e.g. Name. Avatars work in Yammer, whilst perhaps “Doughboy” might be in Suite Bar as:

“If a user’s Yammer profile does not include a picture, the profile will be updated with the user’s Office 365 profile picture. This update is initiated when the user logs in to Yammer and will be reflected in the Yammer profile within few hours. If the user later updates his or her Office 365 profile picture, the Yammer profile picture will also update after the user logs into Yammer.” [4]

As a side note, I’d definitely raise a support ticket with Microsoft if your Yammer avatars do not have pictures. In this situation, something is blocking the pull down of the Office 365 profile picture. It could be something as simple as deleting profile images in Yammer, waiting a few hours and it should push them back down but best if Microsoft look into it for you.

In my opinion the current architecture does not make sense as your profile image should sit outside Exchange Online or SharePoint Online i.e. treated like the other core Active Directory properties and independent of the service that consumes it. I understand that changes would need to occur if Active Directory where to be used as there is anecdotal evidence of a 100kB file limit. Great for avatars rubbish for Delve, Skype etc. where high definition images are required. Hence SharePoint has a 5MB limit and another end point for those images. Having a single endpoint would help developers and companies who do not want to lead with Exchange Online first etc.

I hope Microsoft can review and revise the wiring.


[1] The image is stored in Exchange – https://support.office.com/en-us/article/Add-your-user-photo-to-Office-365-2eaf93fd-b3f1-43b9-9cdc-bdcd548435b7 – It can be manipulated by the Set-UserPhoto (which is an Exchange commandlet). It is also why (regrettably) people still need to lead with Exchange Online, or at least license users for it, if they want the most cohesive onboarding experience into the other workloads. Without an Exchange Online license, there is no Exchange account to hold the profile picture. This can be worked around for SharePoint by uploading images directly into its User Profile Service.[back to article]

[2] I’m not aware that the actual sync interval is published by Microsoft but authors of articles like this one https://spbreed.wordpress.com/2015/11/06/demystifying-user-profile-picture-sync-in-office365/ go into the details of the inner workings. In SharePoint, images can be stored in – https://msdn.microsoft.com/en-us/library/office/microsoft.sharepoint.client.userprofiles.peoplemanager.setmyprofilepicture.aspx [back to article]

[3] This article has a useful table with the attributes passed through to the various services in Office 365. For Yammer (see the Third Party section) https://docs.microsoft.com/en-gb/azure/active-directory/connect/active-directory-aadconnectsync-attributes-synchronized [back to article]

[4] Taken from the FAQ in this article https://support.office.com/en-us/article/Manage-Yammer-users-across-their-life-cycle-from-Office-365-6c4c8fff-6444-404a-bffc-f9da0bcc3039 [back to article]

Columns with benefits

This question recently popped up in our Yammer network:

I’m trying to get my head around how tagging and search works in SharePoint.

Within a Document Library, I added a column and used it to add some keywords to each item. I then searched for the keywords but no results were returned. Does search only work with file names? Is the point of tagging like this only for filtering within the library and enabling various views?

I’m kind of confused at the moment. Obviously, what I want to achieve is to give a document a set of tags which would define that document and then use search to find that document based on the tags that it has been given. But if search only works with file names, maybe this approach will not work…

I thought it would be helpful if I published my response:

When you create a new list or library the only column visible to a search will be the “Title” column. (if you use other out of the box apps like an Issue tracker then there might be couple more). As you observe, filters and views will work as they are not reliant on search. Filters and views in SharePoint work like Sort and Filter in Excel as they allow you to slice the list or library through manipulation.

The contents of the Title column are available to search as the column has associated managed properties which are visible to search. I’d add a caveat that you might need to wait 15 minutes for search to become aware of new items added to columns with managed properties (more about that later). So it goes that if you want search to see content in other columns you need managed properties.

Creating managed properties is a dark art, and something administrators don’t enjoy doing (well this one at least!). It’s fiddly and easy to make mistakes. However, Microsoft know it is hard so they have created a safe path that Administrators and Site Owners can tread.

The safe path is to create “Site columns”. These are different to the columns you create when you add a column to a list, say through Quick Edit, as through that route SharePoint will only add a simple column. The scope of a simple column is limited to the list or library to which it is added. The scope of a site column is that of the site collection it was created in (and it can be wider than that). Site columns are used to establish a consistent, reusable definition across lists and libraries but their abilities go further than that.

Site columns are ‘columns with benefits’

Site columns are created via Cog > Site settings > Site columns (its normally the first option under the “Web Galleries heading”).

Now before you do this, there are some rules that I’d like you to follow (for the detailed guide how to create one check out an earlier post of mine “Reusable columns“). Please create your site column with a lower case camel name e.g. prjman rather than Project Manager as spaces and punctuation in internal names introduce unfriendly complexity. For example, if you create a site column with the name DC Project technology the internal would be DC%5Fx0020%5FProject%5Fx0020%5Ftechnology ! You can give it a friendly name once you have created it. If people are syncing content using OneDrive then you can only have a handful site columns per library. (And if your column uses managed metadata then that greatly reduces the number you can sync owing to lookup thresholds). Once you have defined your columns you can add them to your list or library, not via quick edit but only through the list or library settings.

At this point search is still unaware of the new column, you’ve merely created and added a reusable definition. The magic happens once you add some content to the column. So… Create a new item and populate the site column field, save it and grab a cup of tea (or a good night’s sleep) and come back to it later as the magic happens behind the scenes

Every 15 minutes or so SharePoint is looking for changes to libraries and lists in order to update the search index. When it spots a freshly populated site column. It kicks off a separate task to generate managed properties for that column. This task runs on a schedule that we cannot influence. Sometimes 15 minutes is all it needs to create the managed properties sometimes 24 hours.

Once this task completes the values in the column will be discoverable by search with new items discovered and added to the index every 15 minutes or so. If you’ve used the site column to tag documents in a library, you’ll now be able to use those tags in search. Thereafter we are into the realms of display templates and refiners if the OOTB SharePoint results do not present the results in the format you need.

If you are interested in the behind the scenes magic then check out this post “From site column to managed property – What’s up with that?” – the post and the series of posts it belongs to has been an invaluable reference for me on my SharePoint journey.

 

Reusable columns

The aim of this solution is to demonstrate how to create a reusable column that you can assign to multiple lists and libraries.

Reusing columns is useful if you want to establish a consistent definition across lists and libraries. You can share the definition across multiple lists and libraries so that you don’t have to recreate the column settings each time. A significant additional benefit is that when items are added to a reusable column they discoverable through search (the magic only happens after it has been populated). Reusable columns are called site columns in SharePoint. Site columns can use any of the available column types, including managed metadata, but be careful if you are using them as the source in a lookup function as you can only use either a single line of text, number or date and time as the source!

This solution works for both lists and libraries but it is limited to the scope of the site i.e. a site column in one site collection cannot be used to augment a list or library in another site collection unless they are published by a SharePoint Administrator as part of a tenant wide content type.

For this solution I’ll use the example of where we have number of projects nested under a master project and each one needs a list that contains a definition of the project.

heirarchy

As there are a number of projects we need to ensure that the information being captured is consistent. Each site will contain a list to capture the following Project details:

  • Project number
  • Title
  • Description
  • Principal
  • Manager

The steps in this solution are:

  1. Create site columns for each field
  2. Create a list
  3. Attach the site columns to the list
  4. Modify the list view

Those of you who are familiar with SharePoint might notice that the solution does not include the use content types. Using content types to optimise reuse and search queries is the natural conclusion to the reuse story. I felt that by including a section on content types would make this solution overly long and it is not always necessary to use a content type e.g. where you need to add a searchable column to a single list or library and are happy to add it to an existing content type.

The methods in this solution can be applied whenever you need reusable content in your SharePoint site.  You’ll need the design permission level or higher to implement the solution. If you are creating columns for reuse throughout your SharePoint environment you will need permissions to work with content type hub.

1.    Create site columns for each field

Site columns are created from the site settings page. The site columns item is located under the “Web designer galleries” heading.

Cog > Site settings > Site columns

Site columns are organised into groups which makes it easier to find them when it comes to reusing them. We will create our columns in a new group which we will define when we create the first column.

It is good practice to use short names (lower camel case) and omit spaces when defining site columns, lists, libraries, or sites as SharePoint will use the name as it’s internal name. The internal name is fixed from the time of creation and cannot be edited. If the internal name is long and or contains spaces, you might run into difficulties when trying to reference or rename it. For example, if you create a site column with the name “DC Project technology” the internal would be “DC%5Fx0020%5FProject%5Fx0020%5Ftechnology”  ! It is possible to rename site columns, lists, libraries, or sites after creation to use spaces, long names etc. The act of renaming preserves the internal name and applies a display name as a mask. This means you could repurpose a column or rename it without changing any wiring that depends on it.

For this solution we will create 4 columns and once created rename them:

table

I’ve assumed that the Project number will be a whole number. If it is a combination of letters and numbers, then you’ll need to use the “single line of text” column type. You’ll notice that a column called “Title” is missing. Every list includes a title column by default and in this solution we will use that to hold the Project Title. In other solutions you might not use the title column. If that is the case, then do not delete it!  Remove the requirement for it to be completed and consider hiding it in views. Be wary if you hide it as users will lose access to the ellipses … right click menu for each item.

As mentioned earlier, when we create the first column we will also create a group. The group is a visual aid and so you do not need to worry about an internal name for it.

4a

We start the process by selecting Create column which is located immediately below the page title. I’ll step through the detail of creating the first column which is then repeated for the subsequent columns.

Column 1 – Project number

1.       Enter the internal name prjnum as the column name

2.       Select Number as the type of information

I’ve assumed that the Project number will be whole number. If it is a combination of letters and numbers then you’ll need to use the “single line of text” column type.

When you select Number the page will reload changing the options available lower down on the page. You’ll see the same reload behaviour if you pick a different type of column.

It’s also worth noting at this point that certain column types cannot be converted to a different type once created. For example: single line of text, multiple lines of text, choice, number, currency and yes/no can only be changed to one of the other listed types e.g. single to multi line and not to a (then) unlisted type like Lookup. Also certain column types like yes/no do not work with lookup queries.

3.       Select New group and enter Project

4.       Add some helper text to the Description field

You’ll notice that I have left “Require that this column contains information” set to No. By setting this option to Yes it is possible to enforce the use of unique numbers in the Project number column but SharePoint will strictly enforce the uniqueness which means mistakes are really hard to undo. I’ve found a more user friendly approach is to guide people to use one row in the list per project.

5.       Set the Number of decimal places to 0

The remainder of the options can be left as their default settings.

5a

Selecting OK creates the new column and assigns it to the Project group.

6a

The final step is to rename the site column to use its display name. The column can renamed by clicking on the column name, editing the column name, scrolling to the bottom of the page and selecting OK to save it. SharePoint will then return you to the site columns page

Before (note the reduced list of types of information)

7a

After

8a

When you select OK you might be presented with a warning message which is fine to accept by selecting OK.

9

Selecting OK will save the column and SharePoint will return you to the site columns page.

If you return to edit mode, by locating the column in the list and selecting it, you will see that the value for field name (or internal name) is reported in the address bar:

10a

The next steps are to repeat the process for the remaining columns (remembering to create them with their internal names first) and assign them to the existing Project group rather than creating a new one.

11a

Column 2 – Project description

I opted to use plain text for this column as I felt additional features like hyperlinks where unnecessary.

12a

Column 3 – Project principal

There are options for items using the “People or groups” type of information. Several like Name (with Presence) come with additional data that introduces unnecessary complications for this solution so I opted to use simpler the Name choice.

13a

Column 4 – Project manager

As for the Project principal, I opted for name only.

14a

The next step is create the list to hold the Project details.

15

2.    Create a List

With the site columns created the next step is to create the list that will ultimately hold the project information. You can have multiple instances of the list throughout the site collection (and it’s sub sites). If you plan to have a large number of lists then I recommend using content types to further optimise the deployment. There are several locations in a site from which you can create a list – the screen shot shows just one of them.

Cog > Add an app

16a

From the gallery we need a Custom list

17a

When naming a list for the first time it is good practice to give the list a short name and then rename to use a display name.

18a

Select Create and after SharePoint has created the list it will take you to the site contents page.

19a

With the list created it is now possible to rename it so it uses a display name. The list name can be changed by accessing the list settings. Select the alongside the list name and then Settings

20a

From the settings page we need List name, description and navigation which is the first item under the “General settings” heading.

21a

Before

22a

After

23a

Apart from the changing the name it is a good idea to add this list to the “Quick launch”.

Select OK to save and SharePoint will return you to the settings page.

Versioning is not enabled by default for lists. It is a good idea to use versioning on this type of list so changes can be tracked. Once you have saved the changes to the list name you will be returned to the settings page. From the settings page we now need Versioning settings which is the second item under the “General settings” heading.

24a

Before

25a

After

26a

To add versioning, it is only necessary to change the “Create a version each time you edit an item in this list” to Yes. If you need changes to this list to be authorised, then you could consider enabling Content approval (but be prepared for the friction this option will generate) and change the Draft item security. We do not need to worry about discarding versions or item visibility.

Select OK to save and SharePoint will return you to the settings page. The next step is to add the site columns to the list.

3.    Attach the Site columns to the list

With the list configured it is now time to add the site columns to the list. Hopefully you are still on the list settings page (if not now is the time to find your way back to it!). From the settings page we need Add from existing site columns which is located in the “Columns” section.

27a28

From this page you can add any available site column. We can refine the list of available columns by selecting the Project group from the “Select site columns from” drop down.

29a

Now a tip is to add the columns in the order you want them to be displayed in the list (do not worry if you do not do this as you can reorder them at any time). This order will be the default column order and we’ll tweak it in the final step to include the Project title. For our list we need to add all four columns and you can add them either one-by-one by selecting each one and then Add > or selecting all of them (pick the first column, press and hold shift, pick the last column) and then Add >.

30

Select OK to add the columns and SharePoint will return you to the settings page. The final step is to modify the list view to present the columns in a logical order.

4.    Modify the list view

With the list configured and columns added it is now time to modify the list view to present the columns in a logical order. Hopefully you are still on the list settings page (if not now is the time to find your way back to it!). From the settings page we need Column ordering which is located in the “Columns” section.

31a

We are changing the order in the list Settings as this is the baseline order presented in the New Item form. It controls the top-down presentation whilst the settings in a particular view affect the left to right presentation. We will still create views and reorder them but this helps as it speeds up the editing process and encourages logical relationships (which is good for the user experience e.g. the Project Number will normally appear above the Title in any form the Manager will always be below the Principal once we have set them).

Before

As I had previously added the columns in order, I only need to move the Title column to after the Project number.

32

After

To move a column simply change the position number in the drop down alongside it. SharePoint will then renumber the columns based on the move. In my case I changed the Project number from position 2 to 1. The result was that SharePoint changed the Title position to 2 and with the remainder unchanged.

33a

Select OK to save the change and SharePoint will return you to the Settings page.

34a

The top down column ordering is respected in the New Item form.

36

Whilst we have changed the column ordering it is not reflected in the list view.

35

The column ordering controls top down presentation. The list view controls left to right presentation. The final step in this solution is to edit the All Items view (which is the out of the box default view). As you can see this view show all columns we need but in the wrong order. The view can be configured from several locations including the Ribbon (in the classic list view), Command Bar (in the modern list view) and the list settings. In the list settings select the view name to access its configuration.

37a

Before

Whichever route you take to access the list view, you’ll end up here.

38

After

39

The list is now configured and ready for use.

40

 

That’s it nothing more to do but add content. I hope this solution has given you an insight into the configuration and use of reusable columns.

Moving home… 

Whilst in Atlanta for the Microsoft Ignite conference,  I took some time out to explore the birth place of Martin Luther King Jr.

His family home is located in the Sweet Auburn community. This National Park Service sign explains how the community was subjected to segregation and division:

Sadly, more than 50-years on, some of the areas that there were cleared for the construction of the Interstate have never recovered. There are still block wide sections where nature has reclaimed the rubble.

The sign includes a powerful quote from Fletcher Combs: 

Nobody moved out just overnight. When you clear like that, it takes time… you have to make sure that the people have a place to relocate… the next thing we knew, everybody was gone.

Whilst it originated in an era of social upheaval, it has an additional modern purpose as a warning to anyone moving their digital communities.