Ранее работавшие скрипты теперь имеют проблемы с onOpen и onInstall; события не всегда срабатывают

Итак, у меня есть несколько скриптов Google Apps, которые используют функции onOpen / onInstall для загрузки меню или выполнения некоторых незначительных действий при запуске. Все они уже довольно давно работают в галерее.

Недавно, и я не совсем уверен в времени, что-то обновленное Google вызвало проблему, в которой:

  1. OnOpen, похоже, не всегда выполняется при открытии
  2. OnInstall запускается, но не имеет доступа к функциям в скрипте. В частности, если вы попытаетесь выбрать пункт меню, Apps Scripts выдаст сообщение об ошибке, в котором говорится, что функция не существует (но она существует).

Для пользователя есть невероятно дрянной обходной путь: установите скрипт дважды. Каким-то образом это регистрирует функции, а onInstall загружает меню. Но это работает только до тех пор, пока лист не будет закрыт; тогда они должны быть установлены заново.

Итак, вот мои вопросы:

  1. Есть ли у других людей эта проблема, придумали ли они обходной путь?
  2. Это то, что Google признал и исправляет?
  3. Кто-нибудь знает, когда это произошло?

Наконец, я хотел бы предложить идею «заморозить» api для скрипта в продакшене. IE. мы помещаем переменную вверху, говоря, что мы используем API версии XXX, и это API, который запускает скрипт приложений. Это уже третий раз, когда у меня в производстве есть скрипты, которые затем были сломаны обновлением Google. В какой-то момент нам нужно знать, что когда мы что-то выкладываем в мир, это будет продолжать работать. Пользователи не делают различий между нашей ошибкой и ошибкой в ​​API, а это значит, что мы берем на себя ответственность за такого рода проблемы.


person tazz_ben    schedule 01.11.2012    source источник
comment
Да, с такими же проблемами. Началось одновременно с внедрением библиотек. Идея версий API звучит великолепно, они должны работать так же, как и функциональность библиотек, в режиме разработки и т. Д.   -  person mgmonteleone    schedule 02.11.2012
comment
У меня была такая же проблема, и мне удалось исправить решение функции onOpen ()… в этом сообщении: stackoverflow.com/questions/13337599/   -  person Eduardo Russo    schedule 23.11.2012
comment
@russoedu К сожалению, такого рода решение неприменимо, когда вы распространяете скрипт другим. Думал, приятно знать, что это работает.   -  person tazz_ben    schedule 24.11.2012
comment
Жаль это слышать, @tazz_ben.   -  person Eduardo Russo    schedule 25.11.2012


Ответы (1)


Похоже на ошибку

Похоже, это ошибка с триггерами, прикрепленными к скриптам, загружаемым извне. Один из способов исправить это - вручную добавить и удалить триггер события onOpen.

Примечание. Вам не нужно сохранять триггер, потому что наличие onOpen в коде неявно добавит триггер.

У меня такая же проблема со сценарием, который я опубликовал в «Галерее сценариев».

Что касается триггера onInstall, я думаю, что вы SOL, пока Google его не исправит.

person Evan Plaice    schedule 01.02.2013