I'm trying to get some JavaScript working to create an Task Item based on some other events on a page. I'm just learning but I've got the majority of what I want down. (I think.)
What I don't understand is why my task will create in one scenario and not in another.
function MarkAsRead() { console.log('MarkAsRead Function Ran'); var ctxT = GetCurrentCtx(); if (ctxT.listName = 'Documents') { //Get Context clientContext = new SP.ClientContext.get_current(); //Get Web this.web = clientContext.get_web(); //Get Current User currentUser = web.get_currentUser(); clientContext.load(currentUser); //Get Selected Items items = SP.ListOperation.Selection.getSelectedItems(clientContext); //get workflow task list oList = clientContext.get_web().get_lists().getByTitle('Workflow Tasks'); itemCreateInfo = new SP.ListItemCreationInformation(); this.oListItem = oList.addItem(itemCreateInfo); //oListItem.set_item('ContentType', 'Mark As Read'); oListItem.set_item('Title', 'Read Notification: Javascript'); //oListItem.set_item('Body', 'Hello World!'); oListItem.update(); //clientContext.load(oListItem); //OnSuccess.... clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); }; }; function onQuerySucceeded(sender, args) { console.log('Query Succeeded'); console.log(currentUser.get_loginName()); for (i in items) { console.log(items[i].id); } } function onQueryFailed(sender, args) { alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); }
If I do the "//get workflow task list" where it is it creates the task. I'd prefer it create the task in the onQuerySucceeded function. When I put the code there it fails. What am I doing wrong?
I'm like to get all the arguments and on success create the task using those arguments in the task.
Thanks for the help in advance.
David Jenkins