前提・実現したいこと
コード変更しておらず、先日まで動作していたPDF生成のGASになりますが、
昨日から下記のエラーが出てしまい一度も完了まで至りません。
For文を取り除いて単発生成する命令式であればエラー出ず、PDF生成までしっかり完了されました。
エラーコード500についてググってみてもよく分からず・・・
下記エラーメッセージに表示されている「savePdfMultiple @ 【繰り返し】PDF生成.gs:73」は
「let blob = UrlFetchApp.fetch(url, options).getBlob().setName(fileName + '.pdf');」
の部分を指しています。
お手数をおかけしますがご確認よろしくお願い致します。
発生している問題・エラーメッセージ
10:06:32 お知らせ 実行開始 10:06:33 エラー Exception: Request failed for https://docs.google.com returned code 500. Truncated server response: <!DOCTYPE html><html lang="ja"><head><meta name="description" content="ウェブ ワープロ、プレゼンテーション、スプレッドシート"><meta name="viewport" content="width=device-wid... (use muteHttpExceptions option to examine full response) savePdfMultiple @ 【繰り返し】PDF生成.gs:73
該当のソースコード
1function savePdfMultiple(){ 2 //PDFの保存先(GDriveのフォルダID) 3 let folderId = "*********************************"; 4 5 //アクティブなスプレッドシートを取得 6 let ss = SpreadsheetApp.getActiveSpreadsheet(); 7 8 //スプレッドシートIDを取得 9 let ssId = ss.getId(); 10 11 //一斉送信用整形データシートから出展社数を取得 12 let companyList = ss.getSheetByName('PDF生成').getRange("K1").getValue(); 13 14 let eventName = ss.getSheetByName('PDF生成').getRange("I3").getValue(); 15 16 for(let i = 3; i <= companyList+2; i++){ 17 //PDF化するシートを取得 18 let sheet = ss.getSheets()[i]; 19 20 let sheetId = sheet.getSheetId(); 21 22 //最終行を取得 23 let lastRow = sheet.getRange("J1").getValue(); 24 25 //出展社名を取得 26 let corporateName = sheet.getRange("F3").getValue(); 27 28 //ブース番号を取得 29 let booth = sheet.getRange("E3").getValue(); 30 31 //ファイル名を定義 32 let fileName = "【面談者リスト】" + eventName + " - " + booth + " - " + corporateName + " 御中"; 33 34 //createPdf 35 let baseUrl = "https://docs.google.com/spreadsheets/d/" 36 + ssId 37 + "/export?gid=" 38 + sheetId; 39 40 //PDFのオプションを指定 41 let pdfOptions = "&exportFormat=pdf&format=pdf" 42 + "&size=A4" //用紙サイズ (A4) 43 + "&portrait=false" //用紙の向き true: 縦向き / false: 横向き 44 + "&fitw=true" //ページ幅を用紙にフィットさせるか true: フィットさせる / false: 原寸大 45 + "&top_margin=0.50" //上の余白 46 + "&right_margin=0.50" //右の余白 47 + "&bottom_margin=0.50" //下の余白 48 + "&left_margin=0.50" //左の余白 49 + "&horizontal_alignment=CENTER" //水平方向の位置 50 + "&vertical_alignment=TOP" //垂直方向の位置 51 + "&printtitle=false" //スプレッドシート名の表示有無 52 + "&sheetnames=false" //シート名の表示有無 53 + "&gridlines=false" //グリッドラインの表示有無 54 + "&fzr=false" //固定行の表示有無 55 + "&fzc=false" //固定列の表示有無 56 + "&range=A151%3AI"+lastRow; 57 58 //PDFを作成するためのURL 59 let url = baseUrl + pdfOptions; 60 61 //アクセストークンを取得する 62 let token = ScriptApp.getOAuthToken(); 63 64 //headersにアクセストークンを格納する 65 let options = { 66 headers: { 67 'Authorization': 'Bearer ' + token 68 } 69 }; 70 71 //PDFを作成する 72 // @ts-ignore 73 let blob = UrlFetchApp.fetch(url, options).getBlob().setName(fileName + '.pdf'); 74 75 //PDFの保存先フォルダー 76 //フォルダーIDは引数のfolderIdを使用します 77 let folder = DriveApp.getFolderById(folderId); 78 79 //PDFを指定したフォルダに保存する 80 folder.createFile(blob); 81 82 //sleep 83 Utilities.sleep(5000); 84 } 85} 86
あなたの回答
tips
プレビュー