Resolving Nintex Feature Activation issues after migration
Issues have been reported with data migration tools used to transfer content from a SharePoint 2010 environment to a SharePoint 2013 environment. The tools are preventing the Nintex Workflow site collection feature from activating in the 2013 environment.
Scenario
Site Collection A is in a SharePoint 2010 environment with the Nintex Workflow 2010 feature activated.
Site Collection B is in a SharePoint 2013 environment without the Nintex Workflow 2013 feature activated.
A data migration tool is used to move data from a team site in Site Collection A to a team site in Site Collection B.
Issue
Some data migration tools detect that a site column or content type from Site Collection A is not present in Site Collection B, and then recreate these assets at the target team site. In this case, it will recreate a Nintex Workflow-installed content type and site column.
Later, when a user attempts to activate the Nintex Workflow site collection feature, it will fail. The message in the SharePoint logs will be similar to:
The field with Id {c2dd77c1-89a4-4f1f-b037-c17407e9922c} defined in feature {0561d315-d5db-4736-929e-26da142812c5} was found in the current site collection or in a sub site.
In other words, the data migration tool has forcibly created a column somewhere in the site collection that the feature activation cannot overwrite, preventing it from activating.
Avoiding the issue
This issue will not occur if the Nintex Workflow 2013 site collection feature is already active on the target site collection prior to migration.
Fixing the issue
Option 1: Activate Feature with Powershell and use the Force
From an administrative SharePoint Powershell:
Put in the folder name of the feature in question in the “identity” parameter. You can find the folders under
SharePoint 2010:
C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions14TEMPLATEFEATURES
SharePoint 2013:
C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15TEMPLATEFEATURES
Example:
Enable-SPFeature –identity "NintexWorkflowInfopath" -URL <a href="https://go.mysite.com/mysitecollection/">https://go.mysite.com/mysitecollection/</a> -force
Option 2: Feature Site Column Cleanup Tool
In response to this issue, Nintex developed a utility to clean up any site columns and content types that exist in a sub site in a site collection.
This tool recursively searches every site in a site collection, checking for all Nintex Workflow content types and site columns, and optionally attempts to delete these assets.
It will print the location of any founds assets to the console window.
Once the assets have been removed, the site collection feature will activate correctly.
The tool is available from http://download.nintex.com/sl/supportfiles/support_utilities/NW2010/FeatureSiteColumnCleanup.zip
It should be downloaded to a SharePoint server and run from a command console window as an account that has access to modify all sites in the site collection.
Depending on the number of subsites in the site collection, the tool may take some time to run. The tool will print “Process complete” to the console window when it has finished processing.
Usage
FeatureSiteColumnCleanup.exe "siteCollectionUrl" [-deleteFound] [-includeRootWeb] [-searchUsage] [-skipFields] [-skipContentTypes]
siteCollectionUrl: The URL to the top level site of the site collection that requires processing.
-deleteFound: If this argument is included, any found content types of site columns will be deleted. If this argument is not included, the tool will only report the location of these fields.
-includeRootWeb: If this argument is included, the root team site will be included in the search for assets. Please note that if the Nintex Workflow feature has activated correctly, the assets will exist at the root team site and should not be deleted.
-searchUsage: Specifies whether each list on each site should be checked to see if it uses a Nintex Workflow content type
-skipFields: Specifies whether the process should not check for field assets
-skipContentTypes: Specifies whether the process should not check for content type assets
Example
FeatureSiteColumnCleanup.exe "<a href="http://sharepoint/sites/portal">http://sharepoint/sites/portal</a>" –deleteFound
From <http://connect.nintex.com/forums/thread/12937.aspx>
Option 3: SQL Method aka “Hammer of Thor”
Warning: Unsupported by Microsoft and most likely Nintex!
Identify the Nintex-related Content Type GUID’s and update their “IsFromFeature” property to 0, in the relevant content databases.
Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x0101EF0201%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x010801005CC0%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x0108010064E42%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x0108010079DBDE6%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x01010024055%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x01010024055%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x010100F815D979%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x010100F8376F531%') Update [dbo].[ContentTypes] set [IsFromFeature] = 0 where (sys.fn_varbintohexstr(ContentTypeId) LIKE '0x010100240555%')