How to set the submission policy for the term set using Client Side Object Model in SharePoint 2013


Submission policy: Organization governance can allow the end users to add the terms to the term store. In the term set settings there is an option called "Submission policy" which is used to allow the end users to add the terms to the term set. The end users can add the terms to the term sets in the metadata column dialog box. By default the Submission Policy will be set to Closed. In this blog you will be seeing how to enable this option to add the terms to the term set by the end user.

Navigate to the Central Administration. Click on Application Management. Click on Manage service applications which is available under Service Applications. Click on MMS (Managed Metadata Service). Expand MMS termstore in the Taxonomy Term Store where all the groups for that particular termstore will be displayed. I have a group called “SP2013” which has the following term sets

Ø  Apps

Ø  BCS

Ø  MMS

Ø  WAS

Click on the term set “WAS” on the right hand side you could be able to see the term set properties.

Steps Involved:

1.       Open Visual Studio 2012 (Run as administrator).

2.       Go to File=> New => Project.

3.       Select Console Application in the Visual C# node from the installed templates.

4.       Enter the Name and click on Ok.

5.       In the solution explorer, right click on References folder and then click on Add Reference.

6.       Add the following assemblies from 15 hive (C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI).

a.       Microsoft.SharePoint.Client.dll

b.      Microsoft.SharePoint.Client.Runtime.dll

c.       Microsoft.SharePoint.Client.Taxonomy.dll

7.       Open Program.cs file and replace the code with the following

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Microsoft.SharePoint.Client;

using Microsoft.SharePoint.Client.Taxonomy;

using System.Collections.ObjectModel;

 

namespace ManagedMetadataClient

{

    class Program

    {

        static void Main(string[] args)

        {

            // ClienContext - Get the context for the SharePoint Site

            // SharePoint site URL - http://c4968397007/

            ClientContext clientContext = new ClientContext("http://c4968397007/");

 

            // Get the TaxonomySession

            TaxonomySession taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);

 

            // Get the term store by name

            TermStore termStore = taxonomySession.TermStores.GetByName("MMS");           

 

            // Get the term group by Name

            TermGroup termGroup = termStore.Groups.GetByName("SP2013");

 

            // Get the term set by Name

            TermSet termSet = termGroup.TermSets.GetByName("WAS");

 

            // Set the Submission Policy

            termSet.IsOpenForTermCreation=true;

 

            // Commit all the changes

            termStore.CommitAll();

 

            // Execute the query to the server

            clientContext.ExecuteQuery();

        }

    }

}

 


Output: Submission policy for the term set WAS will be set to Open.

            [Note: Site Collection http://c4968397007/ is associated with MMS service application].