如何使用javascript批准任务?

时间:2017-06-30 07:44:03

标签: javascript sharepoint sharepoint-2013

我在任务列表上实现了一项功能。

按下按钮时,所选任务即被批准。在任务列表中,字段已正确更新。该任务也在工作流日志中正确更新。

问题是工作流程未继续,并且未创建与下一个参与者关联的任务。要更新任务,请使用以下代码。

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();
}

我做错了什么? 我需要做些什么才能获得正常继续的批准?

谢谢,

1 个答案:

答案 0 :(得分:1)

我有这个有效的代码:

//编辑 在我认为的第一个版本中,我删除了无用的代码行(现已注释),我认为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();