App Maker文档批准模板:自动添加默认批准者

时间:2019-07-08 22:59:19

标签: google-app-maker

在文档批准模板中设置标准批准者并保持正确的路线操作。

我在此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();


  }); 

自动批准者1 +批准者2手册:
enter image description here
两者均保持最新状态:
enter image description here

当我们手动添加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));
      }
    }
  }
}

0 个答案:

没有答案