Я создал функцию, которая сохраняется в электронной таблице ответов формы Google. Когда форма отправляется, она берет каждую точку данных и заполняет их в документ слова google, сохраненный на диске, затем создает PDF-документ и отправляет его в электронное письмо тому, кто отправил форму.Как повторить попытку DriveApp.getFileById, если ошибка произошла, до успешного завершения
Примерно в 5% случаев происходит ошибка во время фазы кода, вызываемой функцией DriveApp.getFileById (docTemplate). Ошибка всегда повторяется. «Мы сожалеем, произошла ошибка сервера. Подождите немного и повторите попытку (строка 186, файл« Код »)«
Я пришел к выводу, что это проблема с сетью, и поскольку у пользователя плохое соединение с Интернетом, он не может открыть файл docTemplate, следовательно, это ошибки.
Я хотел бы создать своего рода цикл, который пытается выполнить функцию несколько раз, пока она не завершит эту функцию успешно. Когда происходит ошибка, становится огромной болью в административном порядке, чтобы гарантировать, что пользователь получит свой документ в своевременной усадьбе!
Код У меня довольно длинный. Она начинается с установки переменной, а затем с помощью нескольких, если это дополнительно определить некоторые переменные, а затем переходит непосредственно к:
var copyId = DriveApp.getFileById(docTemplate) //line 186
.makeCopy(docName+' for '+ name) //line 187
.getId(); //line 188
После этого он затем сохраняет и закрывает документ, преобразует временный документ в PDF, затем отправляет электронное письмо с прикрепленными файлами.
Опять же, программа работает безупречно в 95% случаев без проблем. Кажется, что возможно подключение к Интернету может быть проблемой.
Хорошо, я внедрил этот код и до сих пор никаких проблем! Я буду отмечать это и крутить назад, если что-нибудь придет. Блок Try-catch сделал трюк. Грасиас Амит. Один быстрый вопрос: что такое «return copyId»? часть делать? –