可安装的触发器以不同的形式触发脚本?

2023-12-01

当提交不同的表单 (B) 时,我尝试运行连接到一个表单 (A) 的脚本。我有一系列相似的不同形式,需要运行相同的脚本,因此我不知道这是否可能,而不是将代码复制到每个脚本。 我成功地在 A 中制作了一个可安装的触发器函数,指向 B。当出现提示时,我已授予权限。 当我发布 B 时,A 中的脚本会触发,我会在日志中看到以下内容:

Exception: No response with ID 2_ABaOnudSFDkNQOL2Xn4fNOmT95GrTotEW8LSjxfI5qf6qceDN5hD5CHKqNT5D4G_DdONWq0 exists for this form.
    at onFormAnswerSubmit(Kod:40:20)

停止的行 (Kod:40:20) 是获取发布数据的行:

  var items    = e.response.getItemResponses();

这应该有效吗?还是不可能将发布的数据从一种表单传递到另一种表单的脚本?

或者我还可以在触发器中做更多的事情吗?就像强制传递 e 一样。或者其他的东西? 这是我创建的触发器:

/**
 * Creates a trigger for when a different form is posted that runs a function in this script (run once)
 */
function createOtherFormTrigger() {
  var formID = FormApp.openById("XXXXX"); // form B
    
  ScriptApp.newTrigger('onFormAnswerSubmit') // a function in this script, in form A
      .forForm(formID)
      .onFormSubmit()
      .create();
}

您需要稍微改变一下逻辑:

触发器上触发的函数应包含在与触发器相同的脚本中。

为表单 B 创建 formSubmit 触发器的示例代码:

//run this once
function createOtherFormTrigger() { 
var formB = FormApp.openById("XXX");   
  ScriptApp.newTrigger('onFormAnswerSubmit') // a function in this script, in form B
      .forForm(formB) //the active form is Form B
      .onFormSubmit()
      .create();
}
function onFormAnswerSubmit(e){
   var formB = e.source;
   var items = e.response.getItemResponses(); //items of the latest form response of form B
   var formA = FormApp.openById("XXXX"); // Form A 
  ... 
  // do what you need to do with form A
}

上面的代码将创建在提交表单 B 的表单响应时触发的触发器。因此,脚本是否绑定到形式 A、形式 B 或是否为形式并不重要。独立的。实际上,在独立脚本中实现这些函数可能最有意义,以确保它们不会干扰表单绑定脚本中可能拥有的其他表单提交触发器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可安装的触发器以不同的形式触发脚本? 的相关文章

  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • SQL Server 触发器从多个表中删除一条记录

    我知道这可以使用外键来完成 但我无法添加它们 或者当我插入新记录时会发生奇怪的事情 这个数据库中有很多存储过程 但我不知道它们是做什么的 因为我对存储过程一无所知 我希望有人可以帮助我找到一个触发器 当我从 Product 表中删除特定的
  • 在 Google Apps 脚本中,如何为我实现的服务设置 HTTP 响应代码?

    假设我有一个返回 XML 文档的 服务 function doGet var result
  • 从电子表格脚本中调用 Web 应用程序脚本?

    如何从 Google 电子表格容器中的脚本调用外部 Google Web App 脚本 我有许多动态创建的电子表格 并希望它们全部调用一个 Web 应用程序 以实现一致性和易于维护 看看这篇博文 触发主从电子表格之间的更新 http www
  • 谷歌脚本循环性能

    我是 google 脚本的新手 我不确定为什么与 Excel VBA 的简单循环相比 我的性能如此差 我附上了下面的代码 它是一个大约 1200 行的循环 每秒删除大约 2 3 行 我写的脚本效率很低吗 我还不熟悉 Javascript 但
  • 如何将子属性的触发器设置为父属性?

    我有一个带有 ToggleButton ExpanderButton 的 TreeView 切换按钮有两个图像 一张用于展开 另一张用于未展开 但是 当我选择 TreeViewItem 时 我用不同的颜色突出显示它 并且我也想更改图像的颜色
  • 向文档添加动态页眉/页脚

    我想知道是否有一种方法可以向文档添加动态页眉或页脚 即在页脚中添加每个页面都不同的 页面标题 据我所知 编辑内置页眉或页脚将反映在每个页面上 我想知道是否有人想到了一种解决方法 通过访问页面上的第一行 最后一行并在那里插入文本来 强制 它
  • 如何编辑范围? // Google Classroom 控制 Google Apps 脚本中学生访问的权限范围

    我是一名高中老师 正在针对 Google Classroom 编写 Google Apps 脚本 我想创建一个类似于学生成绩视图的电子表格 我的学生可以使用他们的凭据进行访问 我已经成功编写了代码 这样我就可以通过在代码中显式放置学生的 I
  • 如何将值传递到 HTML 模板侧边栏?

    我的任务是更换一些现有的 Access 数据库 我想知道你们是否可以帮助我 目前 我有一个谷歌表格 https docs google com spreadsheets d 1JS5Iwx60Zk7VL8lYz6Yj7ew4eYPhl2Nk
  • 根据表单提交创建名称的新工作表

    在 Google Sheets 中 我有一个脚本 用于为提交的每个 Google 表单创建一个新工作表 它应该创建一个新工作表 其名称基于最后一列 G 列 不是表单提交的列 然后 它从最后一行和标题行获取信息并将其复制到创建的工作表的前两行
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • Google Apps 脚本触发器 - 每当将新文件添加到文件夹时运行

    我想在任何时候执行谷歌应用程序脚本new文件被添加到特定文件夹 目前 我使用的是每 x 分钟运行一次的时钟触发器 但我只需要在向文件夹添加文件时运行脚本 有没有办法做到这一点 与this https stackoverflow com qu
  • 在 userCodeAppPanel 中看不到我的 javascript 代码

    这是来自 Google 电子表格中包含的脚本的代码 唯一的其他代码是onOpen它创建菜单和showDialog 功能 function showDialog userInterface HtmlService createHtmlOutp
  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • 脚本在 SpreadsheetApp.openById 上失败 - 需要权限

    我有一个 onOpen 函数 可以在电子表格中创建自定义菜单 它已经工作了一年多 但几天前它停止工作了 当我查看执行记录时 我得到 执行失败 您无权调用 SpreadsheetApp openById 所需权限 https www goog
  • 如何让 Google Apps 脚本进行 SHA-256 加密?

    我需要使用文本输入 1 轮 十六进制输出 SHA 256 加密来加密字符串 这应该是一个长度为 64 的字符串 我在 Google Apps 脚本文档中尝试过的每个 SHA 256 加密模块都会返回一组数字 例如 function SHA2
  • 如何在公式中的 & 之间添加换行符以生成 QR URL

    我正在谷歌表格中创建一个电子表格 用于跟踪财产房间的库存 我使用二维码作为标签 将其放置在房产上 并将与该特定房产的相关信息相关联 我正在使用以下代码 image https chart googleapis com chart chs 2
  • firebase云功能事务偶尔工作

    我有这样的云功能 exports updateNewsCount functions database ref channels channelId news newsId onWrite event gt const channelId
  • 我正在尝试将变量从 Google 脚本传递到 HtmlOutputFromFile

    我正在尝试创建一个带有下拉列表的输入框 其中该列表基于从电子表格中提取的二维数组 到目前为止 我的研究告诉我 如果我将 HtmlService createHtmlOutputFromFile 存储在一个变量中 我就可以 设置该变量的属性

随机推荐

  • 动态 SQL 结果存入 SQL 存储过程中的临时表

    代码如下 ALTER PROCEDURE dbo pdpd DynamicCall SQLString varchar 4096 null AS Begin create TABLE T1 column 1 varchar 10 colum
  • 从 Chrome 扩展程序连接到数据库?

    我正在构建一个 Chrome 扩展程序 该扩展程序仅适用于我工作的公司内的人员 该扩展需要输入 可以通过对共享 MySQL 数据库服务器 所有员工都可以以只读权限访问 的简单查询来生成输入 问题是 由于扩展都是客户端 主要是 Javascr
  • 检查是否安装了 MS Access 的 OleDb 12.0 驱动程序

    我有一个 C 应用程序 它使用 OleDb 12 0 驱动程序连接到 MS Access 数据库 如果未安装 OleDb 12 0 驱动程序 应用程序将引发没有相关解释的异常 public static class Program priv
  • 使用 Node.js 从网页中抓取 URL

    我正在尝试从网站上抓取所有 URL 并将它们放入一个数组中 我有一个关于数组索引的问题 如果我将像 2 这样的索引号添加到 array 2 中 命令行会回复 未定义 如果我删除索引并打印整个数组 它会逐行打印所有 URL 我希望每个 URL
  • 调用跨线程事件的最简洁方法

    我发现 NET 事件模型是这样的 我经常在一个线程上引发一个事件并在另一个线程上侦听它 我想知道将事件从后台线程编组到 UI 线程的最简洁方法是什么 根据社区的建议 我使用了这个 earlier in the code mCoolObjec
  • 使用 WPF 应用程序的条码扫描仪

    我有一个条形码扫描仪 蓝牙 连接到我的计算机 用于扫描一些条形码 扫描仪的工作方式与键盘完全相同 并返回扫描到的任何内容 在我的 WPF 应用程序中 我有一些文本框供用户手动输入产品编号 修订号 箱号和批号 我希望用户能够扫描 QR Bar
  • 如何在开发 LAMP 服务器上运行多个版本的 PHP 5.x?

    我需要使用多个版本的 PHP 5 x 测试我的 PHP 应用程序 例如 PHP 5 0 0 和 PHP 5 2 8 有没有一种方法可以配置开发 LAMP 服务器 以便我可以使用多个版本的 PHP5 快速测试应用程序 在 CentOS 中 您
  • 删除 robots.txt 后是否会产生后果?

    我发布了一个网站 由于不依赖于我的误解 我不得不在索引之前阻止所有页面 其中一些页面已经链接到社交网络上 因此为了避免不良的用户体验 我决定将以下代码插入到 robots txt 中 User agent Disallow 我收到了关于网站
  • iTextSharp PDF 使用 C# 读取突出显示的文本(突出显示注释)

    我正在开发一个 C winform 应用程序 将 pdf 内容转换为文本 除 pdf 突出显示文本中的内容外 所有必需的内容均被提取 请帮助获取工作示例以提取 pdf 中突出显示的文本 我在项目中使用 iTextSharp dll 假设您正
  • .htaccess URL 屏蔽而不是重定向 [关闭]

    Closed 这个问题是无关 目前不接受答案 我试图掩盖 URL 就像真实的 URL 一样www somedomain com subfolder index php p page3表明www somedomain com subfolde
  • 有什么方法可以解码字符串吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何解码字符串 Java 如何像 HttpUtility HtmlDecode 一样解码 Java 中的 HTML 字符实体 Hi 我有像例如这样的字符串 s 需要像这样转换 s 请帮我这里 提前致谢
  • Laravel 4:一个模型可以服务多个数据库表吗?

    在我的应用程序中 我有几个 mysql 表 多伦多 温哥华 蒙特利尔等 并且我使用 DB 类来处理它们 例如 data DB select select from toronto where id array id 我想做的是开始使用 El
  • 将 CSS 过渡/动画减慢为“慢动作”

    On a Mac if you hold the Shift key and perform an action that involves animation it will slow down the animation For exa
  • 全局命名空间会被污染是什么意思?

    全局命名空间会被污染是什么意思 我真的不明白全局命名空间被污染意味着什么 关于垃圾收集的快速说明 当变量失去作用域时 它们将有资格进行垃圾回收 如果它们的作用域是全局的 那么在全局命名空间失去作用域之前 它们将不符合收集条件 这是一个例子
  • GitHub 推/拉错误

    我对 GitHub 有点陌生 我刚刚创建了我的帐户并进行了设置等 我非常仔细地按照以下步骤操作http help github com create a repo 但是当我执行最后一个命令 git push u origin master
  • 如何在Firestore中保存时间戳?

    我正在开发一个聊天应用程序 我想存储我的消息的时间戳 我的消息数据类是 import com google firebase firestore ServerTimestamp import java util Date public cl
  • Python 中的链式比较数字范围

    我有以下功能 def InRange number return 5 lt number gt 1 如果使用链式比较该数字不在 1 到 5 的范围内 我希望此值为 false 但似乎无法正确执行此操作 有什么建议么 你想要这样的 def I
  • 如何将文件从 JavaScript 传递到 PHP? [复制]

    这个问题在这里已经有答案了 是否可以将文件从 JavaScript 传递到 PHP 最好使用ajax 如果我们有以下代码
  • 无法登录 mssql-server-linux 容器中的 SQL Server

    我不情愿地执行尝试在 docker 容器中使用 Microsoft SQL Server 的耗费灵魂的任务 并且正在使用 Microsoft 提供的 mssql server linux 盒子 但无论我做什么我都无法登录 这是我的 dock
  • 可安装的触发器以不同的形式触发脚本?

    当提交不同的表单 B 时 我尝试运行连接到一个表单 A 的脚本 我有一系列相似的不同形式 需要运行相同的脚本 因此我不知道这是否可能 而不是将代码复制到每个脚本 我成功地在 A 中制作了一个可安装的触发器函数 指向 B 当出现提示时 我已授