【问题标题】:SQL statements in onOpen trigger in Apps Script not workingApps 脚本中的 onOpen 触发器中的 SQL 语句不起作用
【发布时间】:2013-04-10 11:56:46
【问题描述】:

我使用 Google Apps 脚本编写了一个逻辑,它将验证登录用户的电子邮件 ID 与数据库中存在的电子邮件 ID。如果电子邮件存在于数据库中,则在其中一个单元格中填充登录用户的电子邮件 ID。这应该在没有人工干预和电子表格的 onOpen 事件的情况下完成,并且如果有人试图制作同一个电子表格的副本,也应该可以工作。

如果方法不包含 SQL 语句,则 onOpen() 会在两者中执行

  1. 在原始工作表中
  2. 当有人复制它时,

如果方法包含 SQL 语句,则 onOpen() 将被执行

  1. 在原始表中(如果有人甚至我自己复制 它)。

请确认,

  1. 如果我的理解是正确的并且 SQL 语句在 onOpen() 当有人复制工作表时触发。
  2. 有什么替代方法可以实现在原始工作表和副本中执行的此功能(使用“制作副本”选项制作)

【问题讨论】:

    标签: google-apps-script google-cloud-sql


    【解决方案1】:

    不要将其命名为 onOpen,使用其他名称,以便它在您的 userId 下运行,而不是在每个用户下运行。 这样做会破坏副本,因为您需要手动安装 onOpenTrigger

    【讨论】:

    • 我想为所有将复制我的工作表的用户运行它。我尝试给它一个不同的名称并将其安装在所有资源下,但观察到当复制工作表时,触发器不会复制到新创建的复制工作表。
    • 对于这种情况,我通常会在菜单中添加一些按钮,例如“安装触发器”,并提醒用户在创建副本后必须运行它。一旦用户运行它并授予适当的权限,该脚本就会正常工作。没有办法解决没有用户权限的范围,因为这会破坏谷歌应用脚​​本安全策略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2019-07-27
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多