これまで数年に渡って正常に動いていたGASが、突如不具合を吐く様になり、原因を調査する中で、V8ランタイムを有効にしたことが原因の可能性に気づきました。
そして、試しにV8ランタイムを無効にしたところ、正常に動きました。
V8ランタイムを有効にしても正常に動く様、改修を行いたいと思いますが、なぜ有効にするとエラーが発生するのかがわかりません。
エラーが発生するのは以下の部分です。
1var operate = SpreadsheetApp.openById(#######); 2 3var template = operate.getSheetByName('テンプレ');//表頭(1行目)のみ記載したテンプレートになるシート 4var templastcol = template.getLastColumn(); 5var tempdata = template.getRange(1,1,1,templastcol).getValues(); 6 7var reserve_day_str = '21/06/02'; 8var insertidx = 1//本来のコード内では特定の数値 9 10(中略) 11 12var target = operate.insertSheet(reserve_day_str,insertidx); 13target.getRange(1,1,1,templastcol).setValues(tempdata);
エラーメッセージは以下の通りです。
ドキュメント(#######)にアクセス中に スプレッドシート のサービスがタイムアウトしました。
タイムアウトとありますが、上限である6分を待たず、20秒程度(必ずではなく、実行時によって異なります)でもエラーが発生しています。
デバッグしてみるとエラーが発生するのは必ず上記の部分です。
insertSheetは正常に実行されており、試しに
1target.getSheetName();
など、targetに関する操作を行ってもデバッグが止まってしまうので、targetにうまくオブジェクトが格納されていないのかなと思います。
そこで
1operate.insertSheet(reserve_day_str,insertidx); 2var target = operate.getSheetByName(reserve_day_str);
として試しましたが、こちらもtargetにうまくオブジェクトが格納されない様でした。
どうぞよろしくお願い致します。