如何通过检查发送电子邮件的成功来更新数据库字段?

时间:2019-07-18 15:00:52

标签: google-app-maker

我正在尝试在Google App Maker中创建表格。我已经创建了一个表格。其中有一个“预览(保存)”按钮,它将创建一个新项目,并且我有一个名为“状态”的字段。此字段的默认值为“草稿”。在下一页中,我有一个“已发送电子邮件”按钮。此页面不会创建任何新项目。它将发送电子邮件,如果电子邮件发送成功,则会将状态字段从“草稿”更新为“已完成”

这是我的客户脚本

function sendMessage(to, subject, msg){
// some part is omitted 
var status = app.popups.NotificationDialog.descendants.notificationText;
var success = app.datasources.ChangeSystem;

google.script.run
    .withFailureHandler(function(error){
          // success.Success = "draft"
           status.text = error.message;

                                     })
    .withSuccessHandler(function(result){

            status.text = 'sent';
            success.Success = "completed";
            clearEmailForm();
  })
  .sendEmailMessage(to, subject, msg); 
}

这是我的电子邮件发送按钮功能

var widgets = app.pages.Email.descendants;
var to;
var subject = widgets.systemName.value 
var msg =  "Description:\n\t\t"        + widgets.Objective.value; 
          widgets.EmailStatus.text = 'Sending email...';
sendMessage(to, subject, msg);

到目前为止,我已经成功发送了电子邮件,并且已经创建并保存了所有字段。但是问题是发送电子邮件后,“状态”字段不会更新。它与默认值“草稿”相同。我的预期结果是,按下发送按钮后,它将更新现有字段之一。

1 个答案:

答案 0 :(得分:1)

在对该主题进行了其他思考之后,我认为我找到了问题。假设您的“发送电子邮件”按钮与您要更新的字段是相同的继承数据源,这是一些更新的代码。

var success = widget.datasource.item;
google.script.run
  .withFailureHandler(function(error) 
    status.text = error.message;
    success.Success = 'draft';
  })
  .withSuccessHandler(function(result) {
    status.text = 'Email sent';
    success.Success = 'completed';
    clearEmailForm();
  })
  .sendEmailMessage(to,subject, msg);