在文档批准模板中设置标准批准者并保持正确的路线操作。
我在此post中使用的是Darpan开发的代码,但是在文档批准的途径上遇到了问题。 现在,我需要解决@alep评论的相同问题。使用该代码,这两个阶段可以同时向两个批准者发送电子邮件。我需要批准人1才能首先收到它,然后将其发送到批准人2中,就像默认的“文档批准”模板中一样。
批准人1必须是当前批准人,而不是两个批准人。
有人有什么想法吗?
if (requestDs.item.WorkflowStages.length === 0) {
requestDs.relations.WorkflowStages.createItem(function() {
var createDatasource = requestDs.relations.WorkflowStages.relations.Approvers.modes.create;
var draft = createDatasource.item;
draft.Email = 'darpan.sanghavi@abc.com';
draft.Name = 'Darpan Sanghavi';
createDatasource.createItem(function(createdRecord) { });
});
requestDs.relations.WorkflowStages.createItem(function() {
var createDatasource = requestDs.relations.WorkflowStages.relations.Approvers.modes.create;
var draft = createDatasource.item;
draft.Email = 'darpan.sanghavi@xyz.com';
draft.Name = 'Darn Alarm';
createDatasource.createItem(function(createdRecord) { });
app.closeDialog();
});
}
该代码会自动添加批准者,并且可以正常工作,但是批准路线将在以下示例中同时发送。
该想法是在用户无法修改的地方自动添加批准人1。批准人2由用户手动添加。 例如:
if (requestDs.item.WorkflowStages.length === 0) {
requestDs.relations.WorkflowStages.createItem(function() {
var createDatasource = requestDs.relations.WorkflowStages.relations.Approvers.modes.create;
var draft = createDatasource.item;
draft.Email = 'employee@abc.com.br';
draft.Name = 'Employee';
createDatasource.createItem(function(createdRecord) { });
});
requestDs.relations.WorkflowStages.createItem(function() {
app.closeDialog();
});
当我们手动添加2个批准者时,第一个是当前批准者,第二个是保留者。 我不明白为什么要手动操作,但会自动将批准人添加到所有人中。
我认为解决方案在下面的代码中,但是我做得还不够好。
RequestManagementPrivate / ** *更新请求批准者列表,标记当前批准者 *负责批准具有待处理状态的人员。 * * @param {Request}请求-请求处理。 * /
function initializeNextStageAndApprovers_(request) { var allStages = request.WorkflowStages; sortByOrderNo_(allStages); var updateApproverStatus = function(a) { a.Status = Status.Pending; }; var currentLevel = -1; for (var i = 0; i < allStages.length; i++) { var stage = allStages[i]; if (stage.Status === Status.Draft || stage.Status === Status.Pending) { if (currentLevel === -1) { currentLevel = stage.OrderNo; } if (currentLevel === stage.OrderNo && stage.Status === Status.Draft) { stage.Status = Status.Pending; stage.Approvers.forEach(updateApproverStatus); app.saveRecords([stage].concat(stage.Approvers)); } } } }