【发布时间】:2020-12-17 18:59:49
【问题描述】:
当提交不同的表单 (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();
}
【问题讨论】:
-
表单实际上没有连接到任何工作表,我在表单端使用脚本将数据转储到谷歌文档并发送电子邮件。
-
您不需要将脚本添加(绑定)到其他表单。只要所有内容都在同一个帐户中,任何 Apps 脚本文件都可以影响任何其他表单。您只需要表单文件 ID 即可获取任何其他表单,并使用该表单执行某些操作。 Apps 脚本代码可以通过文件 ID 打开表单。影响表单的脚本文件不需要绑定到它打开的表单。如果您想以编程方式在表单中创建新响应(将数据添加到表单),这是可能的。您无需在其他表单中创建触发器。
标签: google-apps-script triggers google-forms