Upgrade SharePoint 2016 from Beta 2 to Release Candidate (RC)

1 Comment

The process of upgrading from SharePoint 2016 Beta 2 to Release Candiate (RC) was pretty straight forward.

I started with my existing SP2016 VM that I already had Beta 2 installed and configured.  My VM is a single server farm with no language packs running on Windows Server 2012 R2 and SQL Server 2014.

The version of SP2016 on my VM before the upgrade was 16.0.1406.1001. You can download SP2016 Beta 2 here.

I downloaded the following two zip packages:

SharePoint Server 2016 Release Candidate English Prerequisite Installer.zip and SharePoint Server 2016 Release Candidate Global Patch.zip from here.

After I extracted the two zip files, I started with the PrerequisiteInstaller.exe.  I only had to reboot my server once for the .NET Framework 4.6 to complete its installation.

After the prerequisites installation process completed, I installed the sts.msp from the Global Patch zip file.

What I found interesting was the pop up window indicating that this file is from an Unknown Publisher.

RCPublisher

After the patch was installed, it prompted for a reboot.

RCRestart

After the server rebooted, I checked to see what the new version would be.

RCUpgradeRequired

Of course, it’s the same as it was before as I had yet to run the PSConfig.

After the PSConfig completed, the new version is now 16.0.4327.1000

RCUpgraded

Now, I’m ready to perform my next task – upgrade SP2013 databases.

 

Learn more about Centric’s Portals and Collaboration Practice

SharePoint 2016 – Change MinRole Error a72id

Leave a comment

After hearing and reading a whole lot about the new MinRole in SharePoint 2016, I had to see what it’s all about by building my own VM.

For this post, I installed SQL Server 2014 and SharePoint 2016 Beta on the same VM server.  I ran the SharePoint Configuration Wizard to get all services and Central Admin provisioned.

I selected the ‘Single-Server Farm’ in the Server Role wizard.

SP2016ServerRole

I checked ‘Servers in this farm’, so far so good.

SP2016ServerFarm

I then tried to convert from ‘Single-Server Farm’ to ‘Application’ using Central Administration.  I got this lovely ‘Sorry, something went wrong’ message.

ConvertToApp

So, I searched the ULS and found these two entries.

12/29/2015 09:21:35.41         OWSTIMER.EXE (0x109C)                           0x316C        SharePoint Foundation                 Topology                             a72id        Exception        Failed converting server ‘VMSP2016T’ from ‘Application’ to ‘Application’ role. System.InvalidOperationException: Invalid search service unprovisioning: application ‘Search Service Application’ still has a ready component ‘in search service instance’ on server ‘VMSP2016T’.     at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.ThrowIfComponentsRunning()     at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Unprovision()     at Microsoft.SharePoint.Administration.SPServerRoleManager.<>c__DisplayClass4.<UnprovisionServiceInstance>b__3()     at Microsoft.SharePoint.Administration.SPServerRoleManager.ConfigureServiceInstanceInternal(SPServiceInstance serviceInstance, Action configureAction)     at Microsoft.SharePoint.Administration.SPServerRoleManager.C…        9b04509d-281a-f0ea-9175-4a569f8e73cf

12/29/2015 09:21:35.41*        OWSTIMER.EXE (0x109C)                           0x316C        SharePoint Foundation                 Topology                             a72id        Exception        …onfigureServiceInstance(SPServiceInstance serviceInstance)     at Microsoft.SharePoint.Administration.SPServerRoleManager.ConfigureServer(Boolean throwOnFailure)     at Microsoft.SharePoint.Administration.SPServerRoleConversionJobDefinition.Execute(Guid targetInstanceId) StackTrace: at onetnative.dll: (sig=55ee5f49-67a4-4a49-9862-19eec61e14d2|2|onetnative.pdb, offset=3712D) at onetnative.dll: (offset=1E35E)        9b04509d-281a-f0ea-9175-4a569f8e73cf

I tried unprovisioning, re-provisioning Search and all of its components, and tried and tried without success to convert to the ‘Application’ role.

I ended up disconnecting and reconnecting the server from its configuration database via PowerShell.  Credit for this solution goes to Nik Charlebois.

Disconnect-SPConfigurationDatabase -Confirm:$False

Connect-SPConfigurationDatabase -DatabaseServer SharePointDB -DatabaseName SharePoint_Config -Passphrase (ConvertTo-SecureString “P@ssw0rd1” -AsPlainText -Force) -LocalServerRole “Application”

Get-SPServer

DisconnectReconnectServer

As you can see from the Get-SPServer command that the server is now running as an ‘Application’ role.

Just to re-validate, I launched Central Admin and voila!  My server is now configured as ‘Application’.

SP2016AppRole

 

Add Term Sets to SharePoint 2013 Search Refinement Panel

Leave a comment

Following my previous post on working in Search Center.  Now I need to add crawled properties to the Search Refinement Panel.  These crawled properties can be content types, custom columns, or term sets.  In this post, I’ll use term sets.

My term store has regions which has U.S. States within each region populated.  For this example, we’ll use the West Region.

TermStore

Here’s my list with region term sets used.  I called that column “Store Region”.

BookList

After the list is populated with some values, go to List Settings –> Advanced Settings –> Reindex List

Just to make sure I get the crawled properties without waiting for the next scheduled crawl, I started the incremental crawl.

I then mapped the managed property to the crawled property.  In this example, I used RefinableString02 managed property.

In the mappings to crawled properties –> Add a Mapping –> I typed region and clicked Find

CrawledPropertySelection

Here I selected, ows_Store_x0020_Region, after a full crawl, I can now see the values in this mapped property.

From Search Center, after typing in a search term –> Edit Page, Edit Refinement web part properties, click Choose Refiners

In the list of Available Refiners, select RefinableString02 (this is what I mapped to in my earlier step).  Here, the list of available values displayed in the preview.

RefinableString02

Click Add –> Type a meaningful name in the Display name text box.  In my case “Store Region”, click OK to close the refinement configuration window, then click OK to close the web part properties window.  Check-in and publish the page.

Here’s the end product.

RefinementPanel2

Customize SharePoint 2013 Search Navigation

Leave a comment

I’ve been working on search, mostly search center, lately. I need to create a custom search navigation to display only content from a legacy SharePoint site. So, I thought I’d share my process here.

First, the content needs to be indexed by the local search service. In other words, SharePoint 2013 must index legacy SharePoint site(s). Second, you’ll need to have access to modify the search center. Since I created my Search Center in its own site collection, the steps outlined below reflect that.

1. Launch the Search Center site from the browser window
2. Select Site Settings
3. Under Site Collection Administration, select Search Result Sources
4. Select New Result Source
5. Provide a name for the new result source (ex: Legacy)
6. Under the Protocol section, select Local SharePoint
7. Under the Type section, select SharePoint Search Results
8. Under the Query Transform section, click Launch Query Builder
9. In the Query text box, type: {searchTerms} (contentclass:sts_listitem) path:http://<oldSharePointsite>
Your screen should look similar to the following screenshot:

LegacyQueryBuilder

10. To validate the query, click Test Query (This should return relevant results in the preview pane.)
11. Select the TEST tab, and select Show more
12. To mimic what a user will see in the Search Center, type a query in the {searchTerms}: box
13. Click Test query (This should return a filtered result view based on the value provided in the searchTerms box.
14. Click OK to close the Build Query window
15. Click Save to close the Result Source window
16. Select Add a page from the Gear Icon
17. Provide a name for the page (ex: Legacy), then click Create
18. In the Search Results web part, select Edit Web Part

19. In the Web part properties, click Change query

20. In the Select a query section, select Legacy (Site Collection) from the dropdown menu

LegacySiteCollection

21. Click OK to close the Build Your Query window
22. Click OK to close the Web part properties window
23. Check in and publish the page
24. From Search Center, select Site Settings
25. Under Search, select Search Settings
26. Under Configure Search Navigation section, select Add Link
27. Provide a title (ex: Legacy) (This will appear on the Search Navigation as “Legacy”)
28. Select Browse
29. Select Pages, select Legacy.aspx, then click Insert

30. Click OK to close the Navigation Link window
31. Click OK to close the Search Settings window
32. To validate changes made to the Custom Search Navigation, navigate to the Search Center site
33. Type in a query string – notice the results displayed at the bottom of the ‘Everything’ tab.
34. Click on the ‘Legacy’ tab, notice the results is less than the results in the ‘Everything’ tab

Your custom navigation should look similar to this:

CustomSearchNavigation

Happy searching!!

Heartland SharePoint Conference 2014 – SharePoint Hosted-App Infrastructure Setup

Leave a comment

The Heartland SharePoint Conference was held on Thursday, Mary 15, 2014.  It was a huge success.  Over 300 business users, developers, and IT Pros attended.

I covered the topic of setting up your on-premises environment to host your own Apps.

Thank you to all who attended.  As promised during the session, the presentation is posted here. SharePoint 2013 Hosted-Apps (On-premises) – Infrastructure Setup

It’s also posted on slideshare.net

Thanks again!

Content Search Web Part (CSWP) – Sort by Modified Date/Time

3 Comments

I was asked to look into Search crawl schedule because one Content Search Web Part settings was changed to sort the content by modified date.  Some contents were modified today, but did not appear at the top of page even though it was configured to sort in descending order.

Search was working fine.  It crawled at the schedule times for both incremental and full crawls.  I kicked off full crawl again, just to make sure.  Still the results displayed on the CSWP was incorrect.

I then looked into the CSWP settings itself.  Under SORTING, the only available field for modified time is LastModifiedTime.

CSWP - Sorting1

I select this property and sorted the list in descending order.

CSWP - Sorting2

I then went back to the Web Part settings and configured CSWP to display two lines with FileName and LastModifiedTime.  The page showed this:

CSWP - Sorting3

It sorted by LastModifiedTime, but this is not the result I was expecting.  It sorted by the LastModifiedTime that the documents were saved not when they were uploaded or the properties were modified in SharePoint.  I expected it to sort the same way my document library is sorted.  This is what I want to have displayed on my CSWP.  My document library looks like this.

DocumentLibrary

As you can see from the last two images, the result are nothing alike.

After searching many posts out on the internet, I did not find a solution.  So, I decided to do some testing on my own.

I went to Managed Properties and reviewed LastModifiedTime settings.  It contained this:

ManagedPropertyLastModifiedTime

After more research, I found that all Mappings to Crawl Properties listed above were related to documents.

I did not want to change any OOTB Managed Properties, so I decided to create a new one called Modified.

Here’s what I have in my new Modified Managed Property.

ManagedPropertyModified

I then started the full crawl.

Now my new Modified Managed Property is available for me to select in my CSWP Sorting.

CSWP - Sorting4

After changing the CSWP Web Part settings, it sorted in the same order as my document library, by Modified column.

CSWP - Sorting5

I hope this helps others who have the same problem I encountered.

Content Search Web Part and Event Dates in SharePoint 2013

20 Comments

I’m working on a project with Mike McNett where we have multiple calendars across multiple sites in a site collection.  We need to create a single view where upcoming events can be viewed from one central location.

We started with Content Search Web Part (CSWP) since it can retrieve all calendar events.

So here’s the path we took:

1. Added Content Search Web Part to a page

2. Changed Query from “Recently changed items (System)” to “Items matching a content type (System)”

3. Changed Restrict by app from “Current site” to “Current site collection”

4. Changed Restrict by tag from “Do not restrict on content type” to “Event”

CSWP - BaiscQuery

5. Switched to Advanced Mode

Note: You can change the path the Query text to include all site collections by removing <sitecollection> from the URL.  If you want to include all lists in your farm, remove the path value all together.

ContentTypeId:0x0102* indicates “Event” we selected earlier.

6. Clicked Test Query

In the SEARCH RESULT PREVIEW, all events returned. In our case, 10 results (This includes past, present, and future dates)

CSWP - QueryText1

So far so good.

Since we only wanted future events to return, we started adding a filter.

7. Changed Property filter to:

StartDate>={Today}

In the SEARCH RESULT PREVIEW, Results=0. (There are five (5) events that meet this criteria.)

CSWP - QueryText2

We tried different properties, including EndDate, and everything with the word “Date”, still the SEARCH RESULT PREVIEW, returned 0 or a syntax error.  We checked to make sure that content has been indexed.

Note: Comparing anything with OWSDATE to {Today} gave us a syntax error. (I’ll explain why later.)

Below is the screenshot when comparing AnythingOWSDATE to {Today}.

CSWP - SyntaxError

After a lot of head-scratching, we started looking into Search Schema. (This can be done at a site collection or a farm level.)

In the Managed property, we typed “date” (without the double quotes).  Here’s where we saw OWSDATE is a “Text” type.

A light bulb went off, this is why comparing {Today} to AnythingOWSDATE caused the Syntax error I mentioned earlier. (At least this made sense to me.)

ManagedProperty

8. So we edited the Date00 Property to the following:

8.a Queryable: checked, Retrievable: checked, Refinable: Yes – active, Sortable: Yes – active;

And affter many tries, these are the settings we used:

8.b Mappings to crawled properties:

Include content from the first crawled property that is not empty, based on the specified order

Ows_EventDate

Ows_q_DATE_EventDate

MappingProperties

9. Started a Full Crawl

10. Went back to the CSWP, and added Date00>={Today}….drum rolls….

It worked!!!

The SEARCH RESULT PREVIEW showed five (5) events.

CSWP - QueryText3

We went back and modified the CSWP properties to include the desired settings, and here’s the final result.

CSWP - Results

We hope this helps those who have similar requirements.

Older Entries