I was trying to write a script that, when you submit a google form, it puts a pdf link to my Google Sheets. However, there seems to be some kind of error. I don't have any experience at all with Google Sheets, so I just copied it from some YouTube video and adjusted it a bit.
https://www.youtube.com/watch?v=EpZGvKIHmR8
The problem says:
TypeError: Cannot read property 'namedValues' of undefined (line 27, file "Code")
Can someone help me to understand the reason of this error?
This is the sheet link: https://docs.google.com/spreadsheets/d/1j6H_qCdrgmxJ88EIOq0Pl-zxVgzt_QgNChTQqmzPey4/edit?usp=sharing
And here is the worksheet: https://docs.google.com/document/d/10qY2CgDNmMG_GnJGc2MeNvog19Mdnh4Ky68_vHkwScE/edit?usp=sharing
function afterFormsubmit(e) {
const info = e.namedValues ;
const pdfFile = createPDF(info);
const entryRow = e.range.getRow();
const ws = SpreadsheetApp.getActiveSpreadsheet.getSheetByName('Electric Forklift Incentive');
ws.getRange(entryRow, 40).setValue(pdfFile.getUrl());
}
function createPDF(info) {
const pdfFolder = DriveApp.getFolderById("1nYJkXEp6EgrCS3Z0rL1_hpVXh8Kunsa6");
const tempFolder = DriveApp.getFolderById("1wHODapt8dd9XzK5IpfmdGuzNHrlr4IZt");
const templateDoc = DriveApp.getFolderById("10qY2CgDNmMG_GnJGc2MeNvog19Mdnh4Ky68_vHkwScE");
const newTemplateFile = templateDoc.makeCopy(tempFolder);
const openDoc = DocumentApp.openById(newTemplateFile.getID());
const body= openDoc.getBody();
body.replaceText("{name}", info['ชื่อพนักงานขับรถ'][0]);
body.replaceText("{brand}", info['ยี่ห้อ / รุ่น'][0]);
body.replaceText("{dp}", info['หน่วยงาน'][0]);
body.replaceText("{num}", info['หมายเลขรถ'][0]);
body.replaceText("{met}", info['เลขมิเตอร์'][0]);
body.replaceText("{po1}", info['หัวข้อพิจารณา [ 1. ระดับน้ำกลั่นในเเบตเตอรี่ (ยกเว้น BYD)]'][0]);
body.replaceText("{po2}", info['หัวข้อพิจารณา [ 2. ระดับน้ำมันไฮดรอลิคและการรั่วซึม]'][0]);
body.replaceText("{po3}", info['หัวข้อพิจารณา [ 3. ระดับน้ำมันเกียร์]'][0]);
body.replaceText("{po4}", info['หัวข้อพิจารณา [ 4. ระดับน้ำมันเบรค]'][0]);
body.replaceText("{po5}", info['หัวข้อพิจารณา [ 5. การทำงานของเบรคมือ]'][0]);
body.replaceText("{po6}", info['หัวข้อพิจารณา [ 6. การทำงานของเบรค]'][0]);
body.replaceText("{po7}", info['หัวข้อพิจารณา [ 7. ระบบเสียงสัญญาณแตร]'][0]);
body.replaceText("{po8}", info['หัวข้อพิจารณา [ 8. ระบบไฟฟ้าแสงสว่างและสัญญาณไฟ]'][0]);
body.replaceText("{po9}", info['หัวข้อพิจารณา [ 9. สภาพงาเเละการทำงานของงา]'][0]);
body.replaceText("{po10}", info['หัวข้อพิจารณา [10. ระบบะสัญญาณไฟกระพริบหลังคา]'][0]);
body.replaceText("{po11}", info['หัวข้อพิจารณา [11. ระบบสัญญาณเสียงขณะถอยรถ]'][0]);
body.replaceText("{po12}", info['หัวข้อพิจารณา [12. ความสะอาดของตัวรถ]'][0]);
body.replaceText("{po13}", info['หัวข้อพิจารณา [13. สภาพของตัวรถ]'][0]);
body.replaceText("{po14}", info['หัวข้อพิจารณา [14. ความสะอาดเครื่องยนต์เเละห้องเครื่อง]'][0]);
body.replaceText("{po15}", info['หัวข้อพิจารณา [15. สภาพเบาะนั่ง]'][0]);
body.replaceText("{po16}", info['หัวข้อพิจารณา [16. สภาพของล้อ / น็อตกะทะล้อ]'][0]);
body.replaceText("{po17}", info['หัวข้อพิจารณา [17. สภาพรอกโซ่และลูกกลิ้งแผงงา]'][0]);
body.replaceText("{po18}", info['หัวข้อพิจารณา [18. ความเรียบร้อยของป้ายชื่อผู้ขับ]'][0]);
body.replaceText("{po19}", info['หัวข้อพิจารณา [19. รายงานการตรวจสภาพรถยกประจำวัน]'][0]);
body.replaceText("{po20}", info['หัวข้อพิจารณา [20. การตรวจสอบถังดับเพลิง]'][0]);
body.replaceText("{add}", info['หมายเหตุ'][0]);
body.replaceText("{request}", info['พบข้อเรียกร้อง'][0]);
body.replaceText("{reqwhere}", info['จากช่องทาง '][0]);
body.replaceText("{stat}", info['สถิติการมาปฏิบัติงาน'][0]);
body.replaceText("{acci}", info['สถิติอุบัติเหตุประจำเดือน'][0]);
body.replaceText("{acdate}", info['วันที่เกิดเหตุ'][0]);
body.replaceText("{reason}", info['สาเหตุ'][0]);
body.replaceText("{accip}", info['อุบัติเหตุที่พบ'][0]);
openDoc.saveAndClose();
const blobPDF = newTemplateFile.getAs(Mimetype.pdf);
const pdfFile = pdfFolder.createFile(blobPDF).setName(info['ชื่อพนักงานขับรถ'][0]+ " " + ['หน่วยงาน'][0] + " " + ['หมายเลขรถ'][0]);
tempFolder.removeFile(newTemplateFile) ;
return pdfFile;
}
afterFormsubmit
? I thought that in your script, when you directly run the function ofafterFormsubmit
with the script editor, such error occurs. So I'm worry about this. – Tanaikei ran it as afterFormsubmit. so how should have i ran it?
, I couldn't understand about your situation. – TanaikeI run the function as afterFormSubmit
. I apologize for my poor English skill. Can I ask you about the detail of it? – Tanaike