Adnan
asked on
How to update List item Managed Metadata Column with JSOM
I have simple list with one title column and one Metadata Column, and iam trying to update my list item but getting an error:
I found this article on google, and i have tried to follow it by implementing JSOM to update my List item. Error iam getting is when context.executeQueryAsync:
I found this article on google, and i have tried to follow it by implementing JSOM to update my List item. Error iam getting is when context.executeQueryAsync:
Error: Invalid field or parameter url.
function execRequest() {
var taxPickerIndex = $("#taxPickerOpenSingle").val();
var result = $.parseJSON(taxPickerIndex);
var listTitle = "GNTiles";
var taxFieldName = "Process";
var termId = result[0].Id;
var term = result[0].Name;
console.log("Term ID: " + termId);
console.log(result);
//var context = new SP.ClientContext(appWebUrl);
var factory = new SP.ProxyWebRequestExecutorFactory(appWebUrl);
context.set_webRequestExecutorFactory(factory);
var appContextSite = new SP.AppContextSite(context, spHostUrl);
var list = appContextSite.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(tileId);
var field = list.get_fields().getByInternalNameOrTitle(taxFieldName);
var txField = context.castTo(field, SP.Taxonomy.TaxonomyField);
context.load(field);
context.load(txField);
context.load(item);
context.executeQueryAsync(
function () {
var termSetId = txField.get_termSetId().toString();
var termId;
getTermIdForTerm(function success(id) {
//termId = id;
console.log("Kommer hit...<");
var termValue = new SP.Taxonomy.TaxonomyFieldValue();
termValue.set_label(term);
termValue.set_termGuid(termId);
termValue.set_wssId(-1);
txField.setFieldValueByValue(item, termValue);
item.update();
context.executeQueryAsync(
function () {
console.log('field updated');
}, function (sender, args) {
console.log(args.get_message() + '\n' + args.get_stackTrace());
});
}, function (sender, args) {
console.log(args.get_message() + '\n' + args.get_stackTrace());
}, context, term, termSetId);
}, function error(err) {
console.log(err.get_message());
});
}
function getTermIdForTerm(success, error, clientContext, term, termSetId) {
var termId = "";
console.log("hmm");
var tSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
var ts = tSession.getDefaultSiteCollectionTermStore();
var tset = ts.getTermSet(termSetId);
var lmi = new SP.Taxonomy.LabelMatchInformation(clientContext);
lmi.set_lcid(1033);
lmi.set_trimUnavailable(true);
lmi.set_termLabel(term);
var termMatches = tset.getTerms(lmi);
clientContext.load(tSession);
clientContext.load(ts);
clientContext.load(tset);
clientContext.load(termMatches);
context.executeQueryAsync(
function () {
if (termMatches && termMatches.get_count() > 0)
termId = termMatches.get_item(0).get_id().toString();
success(termId);
}, function (sender, args) {
console.log(args.get_message() + '\n' + args.get_stackTrace());
});
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER