Функция onOpen () работает нормально, когда запускается вручную в окне скрипта, но не через триггер onOpen - PullRequest
0 голосов
/ 18 января 2019

Я создал Google Script для работы (которым я не хочу здесь делиться) и что прекрасно работает с одним триггером onOpen ().

Поскольку я работал над этим сценарием в личной таблице для тестирования, я в конечном итоге переместил его на реальный лист Google, который должен был запускаться с самого начала, и хотя функция onOpen () по-прежнему работает должным образом, вызываясь через «Выполнить функцию» или даже «Отладочная функция», триггер не сработал, и я не получаю никакой информации журнала или отладки, которая потенциально могла бы мне помочь.

Я несколько раз удалял и заново создавал триггер, поскольку видел, что это был известный обходной путь, но ничего не изменилось. Затем, когда я проверяю «Текущие триггеры», я вижу, что он не сработал ни разу, и я не понимаю, что является причиной этой проблемы ...

Не желая отдавать весь сценарий, поскольку он все равно работает, я предоставляю код для моей триггерной функции, даже если он не изменился с тех пор, как последний раз успешно работал в моей тестовой электронной таблице:

function onOpen()
{
  var aSheet = SpreadsheetApp.getActiveSheet();
    var emailRow = 2;
    var emailColumn = 3;
    for(; !aSheet.getRange(emailRow, emailColumn).isBlank(); emailRow++)
    {
      aSheet.getRange(emailRow, 19).setValue(matchNPandCIO(emailColumn, emailRow));
    }
}

Единственное, что я могу добавить, и это, вероятно, не связано с тем, что электронная таблица, на которой у меня сейчас выполняется сценарий, который я пытался запустить, сегодня сменила владельца и теперь я его владелец. У меня заканчиваются идеи и вещи, которые можно попробовать ...

И да, я также удостоверился, что предоставил сценарию необходимые полномочия, которые ему необходимы (сделано после создания триггера).

1 Ответ

0 голосов
/ 19 января 2019

Простые триггеры, такие как onOpen, запускаются анонимно, поэтому, если matchNPandCIO вызывает методы, для запуска которых требуется авторизация, произойдет сбой.

Альтернативой является использование устанавливаемого триггера.

Относящиеся

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...