This article was created in response to a support issue logged with K2. The content may include typographical errors and may be revised at any time without notice This article is not considered official documentation for K2 software and is provided “as is” with no warranties.
This article provides general guidance and requirements around the K2 tasks that need to be completed when migrating a K2 integrated SharePoint 2013 environment to SharePoint 2016. It includes high level steps for migrating the SharePoint environment in order to provide context around when K2 specific tasks need to be completed. For the SharePoint upgrade itself, refer to the Microsoft documentation, Upgrade to SharePoint Server 2016.
Before You Begin
Assumptions and Requirements
- The SharePoint 2013 environment will be upgraded to SharePoint 2016 as per the Microsoft documentation, which involves using the database-attach method. In-place upgrades of the SharePoint 2013 environment are not supported.
- The SharePoint web application URLs will remain the same after the migration to SharePoint 2016.
- The SharePoint 2013 environment will be decommissioned, and DNS will be updated accordingly after the migration to SharePoint 2016.
- Shutdown the SharePoint 2013 environment so it not accessible to users. It is important to consider that fact that once K2 is shutdown, if SharePoint is still running, any K2 Remote Event Receivers that fire will fail, and the associated workflow will not get started in K2. For this reason, SharePoint should be stopped first.
- Shutdown the K2 environment. This requires stopping the K2 service on all K2 servers. In a K2 Server Farm environment, it is recommended that all K2 servers be removed from the load balancer rotation to allow for testing after the migration is complete, and the K2 environment is brought back online.
- Backup the K2 database and snapshot the K2 servers if possible. If it is not possible to snapshot the servers, ensure you have a rollback plan in the event something goes wrong.
- Create a new web application in the SharePoint 2016 environment with the same URL as the SharePoint 2013 web application.
- Update DNS, local hosts file entries etc. to ensure all communication is routing to the web application in the SharePoint 2016 environment.
- Migrate the SharePoint 2013 environment to SharePoint 2016 per the Microsoft documentation. At a very high level, this involves attaching the 2013 content databases, among other tasks, and upgrading them to SharePoint 2016 using Mount-SPContentDatabase.
- In the SharePoint 2016 environment, from Central Administration, navigate to Apps > Manage App Catalog. Change to the appropriate web application and select the Enter a URL for an existing app catalog site radio button. Enter the existing AppCatalog site collection URL that was used in the 2013 environment. It should have been migrated to 2016 with the content databases.
- Verify general SharePoint functionality of the site collections that were migrated to the new web application.
- Run the K2 AppDeployment.exe tool and deploy the K2 for SharePoint app to the AppCatalog. This is required to setup the OAuth Server to Server trust in the new SharePoint 2016 environment.
- Bring the K2 environment back online by starting the K2 service on all K2 servers. If the K2 servers were removed from the load balancer rotation, it may be necessary to use local hosts file entries on the SharePoint servers and/or client machines to properly route traffic.
- From the AppCatalog site collection, navigate to the K2 for SharePoint app page and run the Registration Wizard.
- From the AppCatalog site collection, navigate to the K2 for SharePoint app page and load the Manage App Deployments (SharePoint) page. Verify the app is deployed to the Site Collections, Managed Paths and Site Templates where it was deployed in the SharePoint 2013 environment. In some cases it may be necessary to reconfigure the app deployments.
- Verify the K2 integration is functioning properly for the existing integrated lists, libraries etc. If Remote Event Receivers are being used, verify they are still functioning properly. Verify you can Appify a new list or library.