Knowledge Base

Unable to Publish New Responsive, Old Responsive, and Classic Forms in one Site Collection For Nintex for Office 365

  • 28 March 2023
  • 0 replies
  • 57 views

Badge +2

Problem

The issue is due to the hidden library for the Nintex Forms. Every saved and published Nintex form is saved in a document library at the same site level. The Classic (including the Old Responsive) uses the NinteFormXml library while the New Responsive Forms use the NintexForms library. Nintex Forms does not use the Title column in the document library (this column is inherited from the root Document content type and by default, it is not a required column).

However, when this column is made a required field by either enabling the management of content types on the library or by changing the column properties at the root site content type level, you will not be able to save a major version of a file in the library unless you specify a value for the Title column. This scenario would occur when the user tries to publish a form because publish would try to create a major version and this would leave the file checked out until someone manually adds a value to the now required Title field.

Solution

Manual Fix: You could go to the document libraries and manually check in every checked out file (which would be marked in red, by SharePoint) after adding a value to the Title column. After this, the associated form would save and publish just fine.- New Responsive Library: Site Collection URL/NintexForms- Old Responsive and Classic: Site Collection URL/NintexFormXML

PowerShell Fix: The following PowerShell script would revert the Title field’s required property back to its original not required state. However, for all forms currently affected by this issue (left checked out by SharePoint), the user would need to re-publish the form. Re-publishing the form would check in the file and thus would fix this issue.

####################################################################################### Set parameter values #######################################################################################$SiteURL= ''$ListNames= @('NintexFormXml', 'NintexForms')#Set Field Internal Names to disable required$FieldName= 'Title'####################################################################################

#For troubleshooting please see: #https://social.technet.microsoft.com/wiki/contents/articles/32333.sharepoint-online-spomod-installation-guide.aspx

Add-Type -Path (Resolve-Path 'C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll')Add-Type -Path (Resolve-Path 'C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll')

Function Get-UserInput( [String] $Message, [String] $Current, [Switch] $AsSecureString = $false) { if ($AsSecureString.IsPresent) { if ($Current){ return (ConvertTo-SecureString $Current -AsPlainText -Force) } Read-Host -Prompt $Message -AsSecureString } else { if ($Current){ return $Current }

Read-Host -Prompt $Message }} #Get Credentials to connect$Cred= Get-Credential

# If the SiteURL is not already provided, prompt for it$SiteURL = Get-UserInput 'Please enter your site URL' $SiteURL #Setup the context$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)$Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password) ForEach($ListName in $ListNames){ #Get the List $List = $Context.Web.lists.GetByTitle($ListName)

#Get the Field $Field = $List.Fields.GetByInternalNameOrTitle($FieldName) #disable 'required' setting for the field $Field.Required = $False $Field.Update() $Context.ExecuteQuery() Write-host 'Field '$FieldName' Required Settings Updated for list '$ListName''}

Write-host 'Done!'

0 replies

Be the first to reply!

Reply