2017-06-30 33 views
1

我在任務列表上實現了一項功能。如何批准使用JavaScript的任務?

當我按下按鈕時,所選任務被批准。在任務列表中,這些字段被正確更新。該任務也在工作流日誌中正確更新。

問題是工作流不會繼續,並且與下一個參與者關聯的任務不會創建。要更新我使用下面的代碼的任務。

var context = new SP.ClientContext.get_current(); 
var selectedItems = SP.ListOperation.Selection.getSelectedItems(context); 
var list = context.get_web().get_lists().getByTitle("Test"); 
var item; 
for (item in selectedItems) 
{ 
     var listitem = list.getItemById(selectedItems[item].id); 
     listitem.set_item('Completed',true); 
     listitem.set_item('PercentComplete',1); 
     listitem.set_item('FormData','Completed'); 
     listitem.set_item('Status','Approved'); 
     listitem.set_item('WorkflowOutcome','Approved'); 
     listitem.update(); 
} 

我在做什麼錯? 我需要做些什麼才能使批准繼續正常進行?

感謝,

回答

0

我有這方面的工作manged代碼:

//編輯 在第一個版本我已​​刪除了,在我看來,代碼沒用線,(現在的評論),我認爲這SPBuiltInFieldId.TaskStatusStatus不同,但它們是相同的字段。

ht["Completed"] = "TRUE"; 
ht["PercentComplete"] = 1.0f; 
//ht[SPBuiltInFieldId.PercentComplete] = 1.0f; 
ht["Status"] = "Completed"; 
//ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString(new CultureInfo((int)elevWeb.Language, false), Strings.WorkflowStatusCompleted, new object[0]); 
ht["WorkflowOutcome"] = outcome; 
//ht[SPBuiltInFieldId.WorkflowOutcome] = outcome; 
ht["TaskStatus"] = outcome; 
ht["FormData"] = outcome; 

,所以我認爲你需要改變你的代碼是這樣的:

//編輯

的事情是,你不得不狀態設置爲Completed但你FormDataWorkflowOutcome您正確工作流程結果,即Approved

var listitem = list.getItemById(selectedItems[item].id); 
listitem.set_item('Completed',true); 
listitem.set_item('PercentComplete',1); 
listitem.set_item('Status','Completed'); 
listitem.set_item('FormData','Approved'); 
listitem.set_item('WorkflowOutcome','Approved'); 
listitem.update(); 
+0

謝謝,但沒有工作。 我得到一個錯誤,告訴我該字段「TaskStatus」不存在。 – Manuel

+0

我的不好,我已經更新了我的回答評論 – tinamou

+0

謝謝,它的工作原理! – Manuel

相關問題