Workflow 在费用审批报告中添加第二个审批人

Workflow 在费用审批报告中添加第二个审批人,workflow,Workflow,我想在费用报告审批中添加第二个审批。我已经把剧本从我的书里拿了出来 该条件可以检查状态(1),如果已批准,则向第二次批准发送电子邮件,还可以将经理的电子邮件放入状态2字段。但它未能将state2更改为“已批准”或“已拒绝”,以便在state3中触发另一封针对DIRECTOR_的电子邮件,这是最终批准阶段 function onReportOrApprovalSubmit(row) { // This is the Procurement Approvals Spreadsheet

我想在费用报告审批中添加第二个审批。我已经把剧本从我的书里拿了出来

该条件可以检查状态(1),如果已批准,则向第二次批准发送电子邮件,还可以将经理的电子邮件放入状态2字段。但它未能将state2更改为“已批准”或“已拒绝”,以便在state3中触发另一封针对DIRECTOR_的电子邮件,这是最终批准阶段

function onReportOrApprovalSubmit(row) {


    // This is the Procurement Approvals Spreadsheet
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
      var lastRow = sheet.getLastRow();

      // Set the status of the new request to 'New'.
      // Column O is the Status column
      sheet.getRange(lastRow,getColIndexByName("Status")).setValue("New");

      // Initialize open Procurement Request (Responses) spreadsheet for editing
      // This is the active spreadhseet since this script is stored with it.
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];

      // Initialize Approval spreadsheet for editing
      // Also open the  Procurement Approvals
      var approvalsSpreadsheet = SpreadsheetApp.openById(APPROVALS_SPREADSHEET_ID);
      var approvalsSheet = approvalsSpreadsheet.getSheets()[0];

        // Open the Second Procurement Approvals
     var approval2sSpreadsheet = SpreadsheetApp.openById(APPROVALS2_SPREADSHEET_ID);
     var approval2sSheet = approval2sSpreadsheet.getSheets()[0];

      // Open the Third Procurement Approvals
     var approval3sSpreadsheet = SpreadsheetApp.openById(APPROVALS3_SPREADSHEET_ID);
     var approval3sSheet = approval3sSpreadsheet.getSheets()[0];

      // Fetch all the data from the Procurement Request Spreadsheet
     var data = getRowsData(sheet);

      // Fetch all the data from First Approvals spreadsheet
      // GetRowsData creates a searchable 2D array 
      var approvalsData = getRowsData(approvalsSheet);

       // Fetch all the data from Second Approvals spreadsheet
      var approval2sData = getRowsData(approval2sSheet);

       // Fetch all the data from Third Approvals spreadsheet
       var approval3sData = getRowsData(approval3sSheet);

      // For every procurement request
      // Iterate through 2D array of Procurement Request (Responses) sheet data
      for (var i = 0; i < data.length; ++i) {
       var row = data[i];
        row.rowNumber = i + 2; 

        // If State field is empty then this a newly submitted request
        if (!row.state) {
         // This is a new request
          // Email the Supervisor to Request his / her Approval

          sendReportToSupervisor(row);
           sheet.getRange(row.rowNumber, COLUMN_STATE).setValue(row.state);
               } else if (row.state == STATE_SUPERVISOR_EMAIL) {

          // If the request has already been sent to the Supervisor then iterate through
          // Check if the Supervisor has accepted or rejected the request in the Approval spreadsheet

          for (var j = 0; j < approvalsData.length; ++j) {
          var approval = approvalsData[j]; 

            // If current request is not the same as the last request id number
            // Then don't stop
            if (row.rowNumber != approval.procurementRequestId) {
              continue;
            }

            // Send approval results to requestor notifying Supervisor's decision
            sendApprovalResults(row, approval);

          // Put Supervisor's email in state field to mark it as being sent to Supervisor for approval
          sheet.getRange(row.rowNumber, COLUMN_STATE).setValue(row.state);

    // Send Approval Request to Manager
      if (row.state == "APPROVED"){

    sendReportToManager(row);
           sheet.getRange(row.rowNumber, COLUMN_STATE2).setValue(row.state2);
         // Put Supervisor's email in state field to mark it as being sent to Supervisor for approval
               } else if (row.state2 == STATE_MANAGER_EMAIL) {

             // Update the state of the report to APPROVED or DENIED
           sheet.getRange(row.rowNumber, COLUMN_STATE2).setValue(row.state2);

      if (row.state2 == "APPROVED"){
         // Send final Approval Request to Director

        sendReportToDirector(row);
           sheet.getRange(row.rowNumber, COLUMN_STATE3).setValue(row.state3);

         // Put Director's email in state field to mark it as being sent to Supervisor for approval
               } else if (row.state3 == STATE_DIRECTOR_EMAIL) {

             // Update the state of the report to APPROVED or DENIED
           sheet.getRange(row.rowNumber, COLUMN_STATE3).setValue(row.state3);

            // Stop if the request id number and current request id are the same. This means there
            // are no new requests to check
          break;
         }
        } 
       }
函数onReportOrApprovalSubmit(行){
//这是采购批准电子表格
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var lastRow=sheet.getLastRow();
//将新请求的状态设置为“新建”。
//列O是状态列
sheet.getRange(lastRow,getColIndexByName(“状态”)).setValue(“新”);
//初始化开放式采购申请(响应)电子表格以进行编辑
//这是活动的spreadhseet,因为此脚本与它一起存储。
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
//初始化审批电子表格以进行编辑
//同时打开采购批准
var approvalsSpreadsheet=SpreadsheetApp.openById(批准\电子表格\ ID);
var approvalsSheet=approvalsSpreadsheet.getSheets()[0];
//打开第二个采购批准
var Approval2Seadsheet=SpreadsheetApp.openById(APPROVALS2\u电子表格\u ID);
var approval2sSheet=approval2ssheadsheet.getSheets()[0];
//打开第三个采购审批
var approval3sSpreadsheet=SpreadsheetApp.openById(APPROVALS3\u SPREADSHEET\u ID);
var approval3sSheet=approval3sSpreadsheet.getSheets()[0];
//从采购申请电子表格中获取所有数据
var数据=getRowsData(表);
//从第一批批准电子表格中获取所有数据
//GetRowsData创建可搜索的二维数组
var approvalsData=getRowsData(approvalsSheet);
//从第二个电子表格中获取所有数据
var approval2sData=getRowsData(Approval2Sheet);
//从第三批批准电子表格中获取所有数据
var approval3sData=getRowsData(approval3sSheet);
//对于每一个采购请求
//遍历采购请求(响应)表数据的二维数组
对于(变量i=0;i
这是一个编码问题吗?如果是,请提供您尝试过的内容。这是我迄今为止尝试过的内容