mardi 24 février 2015

WorkManagement API TypeError: this.get_context is not a function



I have one requirement to show the aggregated task list as a webpart in any page of SP 2013 on premise, where user will see the assigned task list directly without going onto my site. After some research I found a good article here , and from that I am just trying to read the task using Work management API of SharePoint Client Object Model.


I have simply copied and pasted the code in site page and tried to console the task items but it is giving me an error in sp.workmanagement.js as below:



TypeError: this.get_context is not a function



enter image description here


I am stuck since two days, still finding no solution. If anyone can help that would be very helpful.


I have also noticed that this code does work when I put the below script code in publishing page and the page is in edit mode.



<script type="text/javascript" src="/_layouts/15/sp.workmanagement.js"></script>
<script type="text/javascript">
var context, userSessionManager ,userSession , query , myTasks ;
$(document).ready(function () {
ExecuteOrDelayUntilScriptLoaded(function () {
context = new SP.ClientContext.get_current();
ExecuteOrDelayUntilScriptLoaded(function () {
userSessionManager = new SP.WorkManagement.OM.UserOrderedSessionManager(context);
userSession = userSessionManager.createSession();
query = new SP.WorkManagement.OM.TaskQuery(context);
myTasks = userSession.readTasks(query);
}, "sp.workmanagement.js");
getMyTasks();
}, "sp.js");
});

function getMyTasks() {
context.load(myTasks);
context.executeQueryAsync(onGetMyTasksSuccess, onGetMyTasksFail);
}

// This function is executed if the above call is successful
function onGetMyTasksSuccess() {
console.log("Successfully retrieved tasks...");
var taskEnumerator = myTasks.getEnumerator();
while (taskEnumerator.moveNext()) {
var task = taskEnumerator.current;
console.log("Task: " + task.get_id() + " - " + task.get_name());
}
}

// This function is executed if the above call fails
function onGetMyTasksFail(sender, args) {
console.log('Failed to get tasks. Error:' + args.get_message());
}
</script>


So far I figured out that something of order or library reference is missing, but I am unable to get what's wrong with this.








0 commentaires:

Enregistrer un commentaire