Сценарий Google App Script onFormSubmit не срабатывает

У меня есть сценарий для запуска функции при отправке формы Google и добавление новой строки в мою электронную таблицу Google. Увы, не срабатывает. Об ошибках не сообщается, и я не получаю уведомление по электронной почте. Функция работает при ручном выполнении, и новые строки добавляются в электронную таблицу, как и ожидалось, при отправке формы.

Я установил триггер на вкладке ресурсов, чтобы запускать onFormSubmit (), когда в электронной таблице есть событие. Я пробовал onChange и onFormSubmit, но без ответа. Триггер при редактировании работает должным образом, когда я вручную редактирую электронную таблицу. Ниже приведена простая функция, которую он должен запустить.

function onFormSubmit() {
Browser.msgBox("Success")
}

Будем признательны за любые указатели, спасибо.


person Dale J    schedule 08.07.2014    source источник


Ответы (2)


Мне было любопытно, что происходит на самом деле, поэтому я просто провел тест.

Я не получил сообщение об ошибке или уведомление по электронной почте, но стенограмма выполнения показывает, что скрипт был запущен

[18-04-14 18:20:35:056 CDT] SpreadsheetApp.getActiveRange() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getRow() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getLastRow() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getLastColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[18-04-14 18:20:35:151 CDT] Starting execution
[18-04-14 18:20:35:158 CDT] Browser.msgBox([Success]) [0 seconds]
[18-04-14 18:20:35:160 CDT] Execution succeeded [0.002 seconds total runtime]

В своем тесте я поместил электронную таблицу и форму рядом. Диалоговое окно не отображалось.

Объяснение заключается в том, что экземпляр скрипта, запускаемый устанавливаемым триггером, не знает, открыл ли пользователь электронную таблицу или нет (браузер доступен только в контексте электронной таблицы Google).

Если цель состоит в том, чтобы показать диалоговое окно пользователю при получении отправки формы, для этого потребуется «опросчик», подобный описанному в Ответ Mogsdad на Как заставить боковую панель отображать значения из ячеек?

person Rubén    schedule 14.04.2018

Похоже, вы не можете использовать Browser.msgBox () с формами.

Внутри функции триггера вызовите Logger.log («функция была вызвана»)

Вы увидите, что функция вызывается в ваших журналах.

FormApp.getUi (). Alert ("привет") создаст окно сообщения в редакторе формы, но не живую форму.

person AshClarke    schedule 09.07.2014
comment
Спасибо за ваш ответ. Сценарий находится в электронной таблице, а не в форме. Browser.msgBox () должен создать окно сообщения в электронной таблице, как это было, когда я успешно запустил триггер onEdit (). - person Dale J; 09.07.2014
comment
Спасибо. Триггер вообще не вызывал onFormSubmit (). Копирование / вставка кода в новую таблицу устранило проблему. Странно, но это работает, по крайней мере, пока. - person Dale J; 09.07.2014