google apps script - Getting TypeError in onFormSubmit trigger? -


i used google forms tutorial tweak form data merge pdf , send email. getting following error message when try run script:

typeerror: cannot read property "values" undefined. (line 11, file "code")

i not know how fix problem. have searched web answer. here copy of script. marked 2 lines script giving error:

var doctemplate = "1zsqmid2bbjtz6pmgqemusjnkhgsfkd1cbsq0rrqk6kc";   var docname     = "testcertificate";  // when form gets submitted  function onformsubmit(e) {  //get information form , set our variables   var email_address = "email@example.com";  //**(this error occurring on these 2 lines below!)**  var full_name = e.values[2]; var activity = e.values[3];  // document template, copy new temp doc, , save doc’s id  var copyid = docslist.getfilebyid(doctemplate) .makecopy(docname+' '+full_name) .getid();  // open temporary document  var copydoc = documentapp.openbyid(copyid);  // document’s body section  var copybody = copydoc.getactivesection();  // replace place holder keys,in our google doc template   copybody.replacetext('keyfullname', full_name); copybody.replacetext('keyactivity', activity);    // save , close temporary document  copydoc.saveandclose();  // convert document pdf  var pdf = docslist.getfilebyid(copyid).getas("application/pdf");   // attach pdf , send email  var subject = "report"; var body    = "here form " + full_name + ""; mailapp.sendemail(email_address, subject, body, {htmlbody: body, attachments: pdf});   // delete temp file  docslist.getfilebyid(copyid).settrashed(true); } 

here links form , certificate testing.

the error you're seeing because you're running trigger function in script editor. when this, event parameter e not defined - that's error message saying.

for more background, see how can test trigger function in gas?

here's test function run onformsubmit() function multiple times, data that's in spreadsheet. reads each row of sheet, generates object simulate event when form submitted, calls trigger function. if place breakpoints inside onformsubmit(), or rely on logger.log(), technique allow test trigger function.

function test_onformsubmit() {   var datarange = spreadsheetapp.getactivesheet().getdatarange()   var data = datarange.getvalues();   var headers = data[0];   // start @ row 1, skipping headers in row 0   (var row=1; row < data.length; row++) {     var e = {};     e.values = data[row];     e.range = datarange.offset(row,0,1,data[0].length);     e.namedvalues = {};     // loop through headers create namedvalues object     (var col=0; col<headers.length; col++) {       e.namedvalues[headers[col]] = e.values[col];     }     // pass simulated event onformsubmit     onformsubmit(e);   } } 

i've done no other debugging of original function... gets rid of error message, can continue testing.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -