(Примечание: я отредактировал название для ясности)
Я пытался выяснить, что вызывает эту проблему, но безрезультатно.
Я создал скрипт Google, который позволяет Запрос на отправку листа Google на утверждение. После отправки он отправляет запрос по электронной почте, что он был представлен. Он также отправляет утверждающему электронное письмо с возможностью УТВЕРЖДИТЬ или ОТКЛЮЧИТЬ. Моя проблема: та же самая точная почта для Approver также получена Запрашивающей стороной.
Вот снимок кода для вашего обзора и любезной поддержки:
function emailSpreadsheetAsPDF(time, approverEmail, requesterEmail, financeEmail, approvalNeeded) {
var timestamp = time;
var approverEmail = approverEmail;
var requesterEmail = requesterEmail;
var financeEmail = financeEmail;
var approvalNeeded = approvalNeeded;
Logger.log("Approver: " + approverEmail);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form"); // Enter the name of the sheet here
//*******************************************
//* Enter the name of the TEMP folder ID here
//*******************************************
var TEMPfolderid = "xxxyyyzzz"; // TEMP folder to store the PDF export
var body4Requester = "\n\nAttached is a PDF copy of the Price Maintenance Form that you submitted. \n\nPlease note that you will be automatically notified via email when: \n(a) Your request is approved (or disapproved), and \n(b) When it is approved and already processed in SAP. \n\nAPAC Finance Team";
var body4Finance = "\n\nAttached is a PDF copy of the Price Maintenance Form submitted by " + requesterEmail + ". It does not require an approval as per current policy.\n\nKindly process.";
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
// Specify PDF export parameters
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=A4' // paper size legal / letter / A4
+ '&portrait=false' // orientation, false for landscape
+ '&fitw=true&source=labnol' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers : {
'Authorization' : 'Bearer ' + token
},
muteHttpExceptions: true
});
var pdfFile = response.getBlob();
//Create the file...
var file = DriveApp.createFile(pdfFile).setName(timestamp + ".pdf");
//Store the file's ID for retrieval later during approval and post-SAP processing
var PDFfileID = file.getId();
//Save the file in TEMP folder
DriveApp.getFolderById(TEMPfolderid).addFile(file);
//Now, get the file and email as attachment
var blob = DriveApp.getFileById(file.getId());
// Email with Approve/Disapprove link
var url = ScriptApp.getService().getUrl();
var options = '?approval=%APPROVE%×tamp=%TIMESTAMP%&reply=%EMAIL%&pdffileid=%FILEID%'
.replace("%TIMESTAMP%",encodeURIComponent(timestamp))
.replace("%EMAIL%",requesterEmail)
.replace("%FILEID%",PDFfileID);
var approve = url+options.replace("%APPROVE%","Approved");
var disapprove = url+options.replace("%APPROVE%","Disapproved");
var html = "<body>"+
"Attached is the Price Change request<br /><br />"+
"<a href="+ approve +">Approve</a><br />"+
"<a href="+ disapprove +">Disapprove</a><br />"+
"</body>";
if (approvalNeeded == "Yes") { //send email with Approve and Disapprove option to Approver
MailApp.sendEmail(approverEmail, "TEST ONLY: Price Maintenance Form for your approval", body4Requester, {
htmlBody: html,
attachments : [blob]
});
MailApp.sendEmail(requesterEmail, "TEST ONLY: Your Price Maintenance request has been submitted", body4Requester, {
attachments : [blob]
});
} else { //send straight to Finance
MailApp.sendEmail(financeEmail, "TEST ONLY: Price Maintenance Form for processing. No approval neeed", body4Finance, {
cc:requesterEmail,
attachments : [blob]
});
}}
Не уверен, что это актуально - - Я развернул это как веб-приложение с параметром «Запустить приложение как пользователь, обращающийся к веб-приложению».
Заранее большое спасибо за любые советы.