Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app maker 错误与“;空";电子邮件通知脚本中的字段_Google App Maker - Fatal编程技术网

Google app maker 错误与“;空";电子邮件通知脚本中的字段

Google app maker 错误与“;空";电子邮件通知脚本中的字段,google-app-maker,Google App Maker,我道歉。我相信这是一个新手问题,答案很简单 因此,当用户创建条目时,我使用以下命令发送电子邮件通知。除了两个与“null”(空白)条目相关的行为外,所有操作都正常 function newSalesEmailMessage(sendButton) { var pageWidgets = sendButton.root.descendants; var fullName = app.datasources.CurrentUser.item.FullName; var htmlbody

我道歉。我相信这是一个新手问题,答案很简单

因此,当用户创建条目时,我使用以下命令发送电子邮件通知。除了两个与“null”(空白)条目相关的行为外,所有操作都正常

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(
      'test@test.com',
      'New Sales Entry for: ' + pageWidgets.ShowName.value,
      htmlbody);
  return sendButton === "" || sendButton === null || sendButton === undefined;
}
功能newSalesEmailMessage(发送按钮){
var pageWidgets=sendButton.root.com;
var fullName=app.datasources.CurrentUser.item.fullName;
var htmlbody=''+fullName+''+已为以下内容创建新的销售条目:'+
''+pageWidgets.ShowName.value+''页面+
“拍摄日期:”+pageWidgets.ProjectDate.value.toDateString()+
“Contact:”+pageWidgets.Contact.value++”
“Post AP:”+pageWidgets.PostAP.value+”+
“销售人员:”+pageWidgets.salesson.value+”+
“Notes:”+pageWidgets.Notes.value+”;
google.script.run
.withSuccessHandler(函数(){
})
.withFailureHandler(函数(错误){
console.error(JSON.stringify(err));
})
.sendmailcreate(
'test@test.com',
'新销售条目:'+pageWidgets.ShowName.value,
htmlbody);
返回sendButton==“”| | sendButton===null | | sendButton==未定义;
}
第1期:每当用户将某个字段留空时,电子邮件就会在该字段中输入“null”,这是有道理的,但人们总是问我“谁是null?”啊

因此,如果有一种方法可以输出一个空格(例如:“”)而不是“null”,那就太好了

第2期:每当用户将ProjectDate(这是一个日期字段)留空时,我都会收到错误:无法读取null的属性“toDateString”

这是有道理的,但显然这会导致此脚本无法完成。我希望这样的事情能够解决这两个问题,但没有:

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(
      'test@test.com',
      'New Sales Entry for: ' + pageWidgets.ShowName.value,
      htmlbody);
}
功能newSalesEmailMessage(发送按钮){
var pageWidgets=sendButton.root.com;
如果(pageWidgets==null){
pageWidgets=“”;
}
var fullName=app.datasources.CurrentUser.item.fullName;
var htmlbody=''+fullName+''+已为以下内容创建新的销售条目:'+
''+pageWidgets.ShowName.value+''页面+
“拍摄日期:”+pageWidgets.ProjectDate.value.toDateString()+
“Contact:”+pageWidgets.Contact.value++”
“Post AP:”+pageWidgets.PostAP.value+”+
“销售人员:”+pageWidgets.salesson.value+”+
“Notes:”+pageWidgets.Notes.value+”;
google.script.run
.withSuccessHandler(函数(){
})
.withFailureHandler(函数(错误){
console.error(JSON.stringify(err));
})
.sendmailcreate(
'test@test.com',
'新销售条目:'+pageWidgets.ShowName.value,
htmlbody);
}

谢谢你的帮助

处理此类情况有多种方法,最简单的方法是引入一些助手功能:

//如果小部件的值为null,此函数将返回空字符串
//您可以返回任何默认值,甚至可以将其作为函数的参数传递
函数getSafeString(小部件){
返回widget.value==null?
'' :
价值;
}
函数getSafeDate(小部件){
返回widget.value==null?
'' :
widget.value.toDateString();
}
功能newSalesEmailMessage(发送按钮){
...
“…一些HTML…”+getSafeString(widgets.SomeWidget)+“…一些HTML…”+
“…一些HTML…”+getSafeDate(widgets.DateWidget)+“…一些HTML…”
...
}

顺便说一下,我还建议使用datasource.item(或datasource.modes.create.item,具体取决于您的绑定)来获取用户输入。

处理此类情况有多种方法,最简单的方法是引入一些帮助器函数:

//如果小部件的值为null,此函数将返回空字符串
//您可以返回任何默认值,甚至可以将其作为函数的参数传递
函数getSafeString(小部件){
返回widget.value==null?
'' :
价值;
}
函数getSafeDate(小部件){
返回widget.value==null?
'' :
widget.value.toDateString();
}
功能newSalesEmailMessage(发送按钮){
...
“…一些HTML…”+getSafeString(widgets.SomeWidget)+“…一些HTML…”+
“…一些HTML…”+getSafeDate(widgets.DateWidget)+“…一些HTML…”
...
}
顺便说一下,我还建议使用datasource.item(或datasource.modes.create.item,具体取决于您的绑定)来获取用户输入