Подождите, пока данные Google листов загружаются, прежде чем запускать скрипт - PullRequest
0 голосов
/ 12 июня 2019

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

Все данные сбрасываются на один лист -> Назовите его главным листом

Я создал отдельные листы, которые используют функцию query для фильтрации данных, относящихся к каждому сайту -> назовите их как отдельные листы сайта

Каждый месяц у меня есть скрипт приложений Google, который создает сводку в формате PDF по месяцам для ответов на каждом сайте. Некоторое время это работало нормально, но в последнее время скрипт запускается и создает PDF без каких-либо данных.

Когда я пытаюсь устранить эту проблему, я думаю, что вижу проблему. Теперь, когда мастер-лист содержит более 1000 строк данных, функция запроса для каждого отдельного листа сайта загружается за несколько секунд. Во время загрузки скрипт выполняется без каких-либо данных на одном сайте.

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

1 Ответ

1 голос
/ 13 июня 2019

ну я бы не использовал формулы для раздвоения данных здесь.Вместо этого я создал бы сценарий, чтобы выбросить данные на соответствующие листы и поместить его в триггер FormSubmit.Таким образом, данные будут статичными на целевых листах, и ваш сценарий создания PDF будет работать нормально.

Примечание: формулы с большим набором данных всегда будут вызывать проблемы с выполнением скрипта, так или иначе.

PS Не забудьте использовать SpreadsheetApp.flush (), очень важную часть, проверить документацию по статьям поддержки GAS.

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