2016-07-07 78 views
0

你好,我嘗試用javascript來查詢sharepoint 2013中的任務。如何過濾任務以僅顯示活動的任務?

這是我走到這一步:

var context = new SP.ClientContext.get_current(); 
    var userSessionManager = new SP.WorkManagement.OM.UserOrderedSessionManager(context); 
    var userSession = userSessionManager.createSession(); 
    var userSettingsManager = new SP.WorkManagement.OM.UserSettingsManager(context); 
    var locations = userSettingsManager.getAllLocations(); 
    var locationFilter = userSettingsManager.locationFilter 
    var query = new SP.WorkManagement.OM.TaskQuery(context); 
    var myTasks = userSession.readTasks(query); 
    var task; 
    var tasks = []; 
    var overDue = []; 
    var dueSoon = []; 
    var anTimeDue = []; 
    var dateForEvaluation = new Date(); 

    getMyTasks(); 

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

    function onGetMyTasksSuccess() { 
     console.log("Successfully retrieved tasks..."); 
     var taskEnumerator = myTasks.getEnumerator(); 
     while (taskEnumerator.moveNext()) { 
      task = taskEnumerator.current; 
      //console.log("Task: " + task.get_id() + " - Taskname: " + task.get_name() + " - Beschreibung: " + task.get_description() + " - dueDatum: " + task.get_dueDate() + " - Startdatum: " + task.get_startDate() + " - Persönlich: " + task.get_isPersonal() + " - Fertiggestellt: " + task.get_isCompleted()); 
      tasks.push({ 
       taskName: task.get_name(), 
       description: task.get_description(), 
       dueDate: task.get_dueDate(), 
       startDate: task.get_startDate(), 
       personally: task.get_isPersonal(), 
       complete: task.get_isCompleted(), 
       location: task.get_locationId() 

      }); 
     } 

     console.log(tasks); 
     console.log(locations) 
    } 

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

此代碼的工作,但給了我永遠的所有任務回來。我只需要未完成的任務。那麼我試着看看引用頁面,但沒有代碼示例或任何東西。

所以我的問題是如何過濾任務,只得到未完成的任務?

任何建議或舉行將是偉大的,並感謝您的時間。

回答

0

正如我發現唯一的工作選項對我來說是我們一個if語句,其中我查詢is_completet方法的結果。

這裏是現在工作代碼:

function onGetMyTasksSuccess() { 
    console.log("Successfully retrieved tasks..."); 
    var taskEnumerator = myTasks.getEnumerator(); 
    while (taskEnumerator.moveNext()) { 
     task = taskEnumerator.current; 
     if (task.get_isCompleted() === false) { 
      tasks.push({ 
       taskName: task.get_name(), 
       description: task.get_description(), 
       dueDate: task.get_dueDate(), 
       startDate: task.get_startDate(), 
       personally: task.get_isPersonal(), 
       complete: task.get_isCompleted(), 
       location: task.get_locationId() 
      }); 
     } 

    } 

    console.log(tasks); 
    countForForm(tasks); 
} 

這裏的importend就是if (task.get_isCompleted() === false)它並不完美,但我的作品不夠好。令人遺憾的是,對於sharepoint sp.workmanagment.js,JavaScript API沒有很好的記錄。