特定の処理の際にタイムアウトになる
閲覧ありがとうございます。
タイムアウトの解消がしたい
GoogleAppsScript で在庫管理をしており、未販売分を抽出して「●●日未販売分」というシートにまとめるスクリプトを書いており、実際に業務に使用しておりました。
元々全くエラーを吐いていませんでしたが、いつからか実行すると特定の処理の際にタイムアウトするようになりました。
解決方法を教えていただけますと幸いです。
よろしくお願いいたします。
発生している問題・エラー
Exception: ドキュメント(#######)にアクセス中に スプレッドシート のサービスがタイムアウトしました。(行 28、…)
ドキュメントのidはgetActiveSpreadsheetで取得したアクティブなスプレッドシートのidです。
「●●日未販売分」シート(コード上ではzaikoシートと表記)がないとき問題なくすべての処理を完遂するのですが、
「●●日未販売分」シートがあり、一度そのシートを削除して改めて作成した際に数秒でタイムアウトになります。
該当するソースコード
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var day = new Date().getDate();
//すでにzaikoシートが追加されている場合
try{
var zaiko = ss.getSheetByName(day + '日未販売分');
//tryの部分 zaikoシートが無ければ動かずエラーになる為catchへ
zaiko.setColumnWidth(1, 230);
//zaikoシートがあれば削除して取得するか確認
var result = Browser.msgBox(day + '日未販売分シートを削除して取得しますか?',Browser.Buttons.YES_NO);
if(result == 'no'){
Browser.msgBox(day + '日未販売分シートの名前を変更して再度実行してください');
return;
}else if(result == 'yes'){
//zaikoシート削除
ss.deleteSheet(zaiko);
}
}catch(e){
}
//今回の未販売分のビットを張り付けるシートを作成
ss.insertSheet(day + '日未販売分');
////問題の発生している行(行 28)
var zaiko = ss.getSheetByName(day + '日未販売分');
自分で試したこと
・問題の発生している行をコメントアウト
→その次の行でタイムアウト
・deleteSheet削除
→タイムアウトは起きない(ss.insertSheet(day + '日未販売分');にて名前が被るためエラー)
→deleteSheet起因?
・共有しているPCをすべてログアウトして実行
→事象変わらず
・同じエラーの記事(https://teratail.com/questions/320623 )を参考に行数を削除
事象変わらず
よろしくお願いいたします。