Skip to main content

Managed Metadata Column Value Add with Angular | JavaScript & JSOM | CSOM

Following would be high-level program flow;MMS Column Update Program Flow

SP Taxonomy need to be imported.

[code language="javascript"]

var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/";
$.getScript(scriptbase + "SP.Taxonomy.js");
[/code]

Create custom list item with metadata column in SharePoint with JSOM and Angular JS.

[code language="javascript"]
// Adding item to SharePoint custom list with Managed Metadata column (MMS column) with JSOM
(function () {
'use strict';

// define controller
var controllerId = "mmsColumnUploadCtrl";

angular
.module('app')
.controller(controllerId, ['$scope', mmsColumnUploadCtrl]);

// create controller
function mmsColumnUploadCtrl($scope) {
//global var
var vm = this;

//add metadata column to sharepoint
vm.AddMetadataColumn = function () {
var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/";

// create list item with MMS column
$.getScript(scriptbase + "SP.Taxonomy.js", createListItemWithMMSColumn);

}

//Create list item metadata with MMS column
function createListItemWithMMSColumn() {
//site URi
var siteUrl = 'http://<site url>/sites/MMSPOC';
// List name of updating
var listName = 'TestList';// List name
//Term GUID get from Service
var termId = 'ed414e70-cc02-444b-ba78-8456e6495e45';//term GUID
//For multi labled column may need to provice term lable also, else no
//var termLabel = 'ABCTEST';//Term label

// Client context
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle(listName);
var itemCreateInfo = new SP.ListItemCreationInformation();
var oListItem = oList.addItem(itemCreateInfo);
// Define item
oListItem.set_item('Title', 'New Item!'); // non MMS columns
oListItem.set_item('MMSCol', termId); //MMS column
// Update item
oListItem.update();

//client context..Async Req.
clientContext.load(oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, onQuerySucceeded),
Function.createDelegate(this, onQueryFailed)
);
}

// On query success
function onQuerySucceeded(oListItem) {
console.info('Item created!');
}
// On query failed
function onQueryFailed(sender, args) {
console.error('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

};

})();

[/code]

Update document library items' managed metadata column in SharePoint with JSOM and Angular

[code language="javascript"]
// Adding item to SharePoint "Document Library" with Managed Metadata column (MMS column) with JSOM
(function () {
'use strict';

// define controller
var controllerId = "mmsColumnUploadCtrl";

angular
.module('app')
.controller(controllerId, ['$scope', mmsColumnUploadCtrl]);

// create controller
function mmsColumnUploadCtrl($scope) {
//global var
var vm = this;

//add metadata column to sharepoint
vm.AddMetadataColumn = function () {
var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/";

// Create document item ith MSS column
$.getScript(scriptbase + "SP.Taxonomy.js", updateDocumentItemWithMMSColumn);

}

// Create document metadata of document library item with MMS column
function updateDocumentItemWithMMSColumn() {
//site URi
var siteUrl = 'http://<site>/sites/MMSPOC';

// List name of updating
var listName = 'MMSPOCDocLib';//document library name

// GUID of the term
var termId = 'ed414e70-cc02-444b-ba78-8456e6495e45';//term guid

//For multi-valued terms following will be needed
var termLabel = 'ABCTEST';//term label

//Item Id for update in the document library
//3 is item ID to be updated
//You may dynamically change with the requirement
var itemIdUpdating = 3;

// Client context
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle(listName);
var itemCreateInfo = new SP.ListItemCreationInformation();

var oListItem = oList.getItemById(itemIdUpdating);
// Define item
oListItem.set_item('Title', 'Item updated!');
oListItem.set_item('MMSCol', termId);
// Update item
oListItem.update();

//client context..Async Req.
clientContext.load(oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, onQuerySucceeded),
Function.createDelegate(this, onQueryFailed)
);
}
// On query success
function onQuerySucceeded(oListItem) {
console.info('Item created!');
}
// On query failed
function onQueryFailed(sender, args) {
console.error('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
};
[/code]
Await for more interesting coding samples and articles, keep following!! 

Comments

  1. […] https://kushanlahiru.wordpress.com/2016/09/05/managed-metadata-column-value-add-with-angular-javascr… […]

    ReplyDelete

Post a Comment

Popular posts from this blog

Turn off/ Hide Details panel/ Information Panel on modern SharePoint lists

Not always we require to show changes done by other which is a mandatory feature in SharePoint online.  What is details pane (aka. Information Pane)? Detail pane/ Information shows information regarding the document if you selected a one or its showing recent changes within a list or library. Follow link to Microsoft documentation about details pane. Bad news: Until Microsoft listen to User Voice , there is no straightforward way to enable disable this even you don't want. Good news: We could write a SharePoint framework extension to hack styles until Microsoft give us a permanent solution. How? I found this sample project (Inject CSS into modern SharePoint pages with React) which could reuse to our purpose. Thanks to Hugo for saving my time.  Steps to awesomeness:  Clone the project Resolve dependencies >  npm i Bundle >  gulp bundle --ship Package >  gulp package-solution --ship Upload package into SharePoint App catalog  

📢 Update -Top 10 Microsoft Teams questions from customers around the world

Over the last 4 months, we’ve traveled to 9 countries on Microsoft Ignite | The Tour meeting and speaking with users like you about Microsoft Teams. The insights and feedback at every location has been invaluable — Thank you. During our travels, there have been 10 questions that have repeatedly surfaced. Below are all of the questions — including the answers too, of course!   Can you restrict access to a specific channel in a team? What are best practices for governance, specifically around team creation, naming, and retention? Can I add guests to my team? If so, how? How does external access/federation work? How is this different to guest access? What functionalities do I get in a hybrid environment? Is Teams available for on-prem environments? How do I configure Direct Routing in Microsoft Teams? Why should I move from Skype for Business to Teams? How do I make this transition? I have existing SharePoint sites that I would like to bring into Teams. Can I do that? I need t

Eliminate Duplicates in Microsoft Flow and Azure Logic Apps

There is no straight forward method or Microsoft Flow action  to eliminate values in a collection like Microsft Excel (as of March 2019). This little hack will help you to eliminate/ remove duplicates and create a collection of unique values. Sample scenario: Need to send daily summarized notification to assigned approved with pending approval items. Sample workflow: Initialize an array Iterate collection of data and append items that are not there in the filtered array Side note: This won't be an option to consider if you too concerned about the performance of the workflow but for the time being its an option to consider.