Sending this PDF as an attachment is resulting in this error: Service invoked too many times for one day: urlfetch.
and I can't see why.
function emailSavePo(poNumber, supplier, unit) {
poNumber = '2B'
supplier = 'ABC'
unit = 'UnitA'
var ss = SpreadsheetApp.getActiveSpreadsheet();
var spreadsheetId = ss.getId();
var email = Session.getActiveUser().getEmail();
var pdfName = 'PO' + ' ' + poNumber + ' - ' + supplier + ' - ' + unit;
var sheetId = ss.getSheetByName('PO Sheet').getSheetId();
var url_base = ss.getUrl().replace(/edit$/, '');
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
+ (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
// following parameters are optional...
+ '&size=A4' // paper size
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true' // fit to width, false for actual size
+ '&top_margin=0.50'
+ '&bottom_margin=0.50'
+ '&left_margin=0.50'
+ '&right_margin=0.50'
+ '&sheetnames=true&printtitle=false&pagenumbers=true' //hide optional headers and footers
+ '&gridlines=false' // hide gridlines
+ '&fzr=false'; // do not repeat row headers (frozen rows) on each page
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
var response = UrlFetchApp.fetch(url_base + url_ext, options);
var blob = response.getBlob().setName(pdfName + '.pdf');
if (email) {
const mailOptions = {
attachments: blob
}
MailApp.sendEmail(
email,
subject + " " + pdfName + "",
"Hello! \n\nHere is a copy of the PO! \n\nBest regards,\nTeam",
mailOptions);
ss.toast('A pdf copy of the PO has been sent to ' + email + '!')
}
}
Logged all parts of it and it all seems OK.
It's important to consider other functions that you may have on other spreadsheets. The quota limit for URL fetch calls is 20,000 per day on a personal Gmail account and 100,000 per day on a business Google Workspace account. This quota count towards your Google account, it's possible that other functions on your account are consuming your quota. Try running the script on a different account, if it works that means that something is consuming your quota. You can check the details about quotas for Google services using this link https://developers.google.com/apps-script/guides/services/quotas