Я прошу прощения. Я уверен, что это вопрос для новичков, на который есть простой ответ.
Поэтому я использую следующее, чтобы отправлять уведомление по электронной почте, когда пользователь создает запись. Все работает нормально, за исключением двух вариантов поведения, связанных с «нулевыми» (пустыми) записями.
function newSalesEmailMessage(sendButton) {
var pageWidgets = sendButton.root.descendants;
var fullName = app.datasources.CurrentUser.item.FullName;
var htmlbody = '<b><font size="3">' + fullName + '</font></b>' + ' has created a new sales entry for: ' +
'<h1><span style="color:#2196F3">' + pageWidgets.ShowName.value + '</h1>' +
'<p>Shoot Date: <b>' + pageWidgets.ProjectDate.value.toDateString() + '</b>' +
'<p>Contact: <b>' + pageWidgets.Contact.value + '</b>' +
'<p>Post AP: <b>' + pageWidgets.PostAP.value + '</b>' +
'<p>Sales Person: <b>' + pageWidgets.SalesPerson.value + '</b>' +
'<p>Notes: <b>' + pageWidgets.Notes.value + '</b>';
google.script.run
.withSuccessHandler(function() {
})
.withFailureHandler(function(err) {
console.error(JSON.stringify(err));
})
.sendEmailCreate(
'[email protected]',
'New Sales Entry for: ' + pageWidgets.ShowName.value,
htmlbody);
return sendButton === "" || sendButton === null || sendButton === undefined;
}
Проблема 1: всякий раз, когда пользователь оставляет поле пустым, электронное письмо помещает в него «null», что имеет смысл, но люди продолжают спрашивать меня: «Кто является пустым?» Фу.
Так что, если есть способ вывести пробел (например: "") вместо "null", это было бы здорово.
Проблема 2: всякий раз, когда пользователь оставляет поле ProjectDate (которое является полем даты) пустым, я получаю сообщение об ошибке: не удается прочитать свойство toDateString со значением null.
Это имеет смысл, но, очевидно, из-за этого сценарий не завершается. Я надеялся, что что-то вроде этого исправит обе проблемы, но этого не произошло:
function newSalesEmailMessage(sendButton) {
var pageWidgets = sendButton.root.descendants;
if (pageWidgets === null) {
pageWidgets = "";
}
var fullName = app.datasources.CurrentUser.item.FullName;
var htmlbody = '<b><font size="3">' + fullName + '</font></b>' + ' has created a new sales entry for: ' +
'<h1><span style="color:#2196F3">' + pageWidgets.ShowName.value + '</h1>' +
'<p>Shoot Date: <b>' + pageWidgets.ProjectDate.value.toDateString() + '</b>' +
'<p>Contact: <b>' + pageWidgets.Contact.value + '</b>' +
'<p>Post AP: <b>' + pageWidgets.PostAP.value + '</b>' +
'<p>Sales Person: <b>' + pageWidgets.SalesPerson.value + '</b>' +
'<p>Notes: <b>' + pageWidgets.Notes.value + '</b>';
google.script.run
.withSuccessHandler(function() {
})
.withFailureHandler(function(err) {
console.error(JSON.stringify(err));
})
.sendEmailCreate(
'[email protected]',
'New Sales Entry for: ' + pageWidgets.ShowName.value,
htmlbody);
}
Спасибо за помощь.