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%')

migration, Nintex Workflow, nintex workflow infopath, upgrade

Comment

  • Hey Keith,
    Your post is a great problem solver. We are trying to migrate SharePoint & Nintex 2007 to SharePoint & Nintex 2013 with hop of SharePoint 2010 & Nintex 2010.
    We are following database attach detach approach for Nintex database upgrade with SharePoint 2010 as hop as per guidelines.
    Upgrading Nintex database from SharePoint 2007 to SharePoint 2010 the process is successful and Workflows are visible and editable properly.
    When we Upgrade from SharePoint 2010 to SharePoint 2013 some of the activities are missing and shows as Unknown activity.
    During the upgrade from in some of workflow activity not getting loaded and shows as unknown activity.
    We observe the at activities like ‘Wait for an item update’ is not getting loaded and when I compare the nwf file I find below construct missing completely in 2013 nwf
    ” ———-”
    “Wait for an item update</TLabel><ExpectedDuration>-1</ExpectedDuration><Assembly>Nintex.Workflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=913f6bae0ca5ae12</Assembly><Type>Nintex.Workflow.Activities.Adapters.SPWaitForWithKeyAdapter</Type><IsValid>true</IsValid><ConditionUse>None</ConditionUse><Parameters><Parameter Name=”LookupField”><PrimitiveValue Value=”Confirmed_x0020_Del_x0020_Date” ValueType=”Text” /></Parameter><Parameter Name=”LookupFieldType”><PrimitiveValue Value=”DateTime” ValueType=”Text” /></Parameter><Parameter Name=”LookupFieldValue”><Variable Name=”varDate” Required=”false” StartupOptionsConfigured=”false” ControlType=”None” Type=”DateTime” Initiate=”false” Description=”” Direction=”None” RowIndex=”-1″ /></Parameter><Parameter Name=”Operator”><PrimitiveValue Value=”NotEqual” ValueType=”Text” /></Parameter></Parameters><LogMessage>false</LogMessage><HistoryNote /><HasDefaultMessage>false</HasDefaultMessage><UserContext>Default</UserContext><SelectedUserContext>Default</SelectedUserContext></NWActionConfig><NWActionConfig LCustLbl=”false” RCustLbl=”false” TCustLbl=”false” BCustLbl=”false” ShowCustomComments=”false” CommentType=”Auto”><HideUI>false</HideUI><Enabled>true</Enabled><InheritedEnabled>true</InheritedEnabled><BLabel /><LLabel /><RLabel /><TLabel>”
    “———-”

    Appreciate any pointer or help

    Thanks
    Anup Karade

Leave a Reply

Your email address will not be published. Required fields are marked *