2016-07-07 8 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_completetメソッドの結果を照会するif文です。ここで

は今ワーキングコード:

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)であることは完璧な意味が、私は十分に機能します。悲しいことに、JavaScript APIはSharePointのsp.workmanagment.jsにはよく書かれていません。

関連する問題