google apps script - No item with Given ID can be found -


i having issues when running script after recent api update. had issues able fix around here having id issue. unsure of coming because have few things id. help? here code if want run , picture of error looks like.

if want run need have folder called templates , document inside of there. inside of document needs {a} column in spreadsheet , should still give error, thanks!

enter image description here

function generatedocument(e) {         var template = driveapp.getfilebyid(e.parameter.templates);         logger.log(template.getname());         var sheet = spreadsheetapp.getactivespreadsheet();         var row = number(e.parameter.row) //+1; // remove // in line next +1 skip headers         logger.log(row);         var currentfid = e.parameter.curfid;         logger.log(currentfid);         var mydocid = template.makecopy(sheet.getrange('b' + row).getvalue() + ' - ' + sheet.getrange('e' + row).getvalue() + ' - ' + sheet.getrange('d' + row).getvalue() + ' - ' + sheet.getrange('x' + row).getvalue()).getid();         var mydoc = documentapp.openbyid(mydocid);         var copybody = mydoc.getactivesection();         var sheet = spreadsheetapp.getactivespreadsheet();         //row--; // decrement row number in concordance real row numbers in sheet         var myrow = spreadsheetapp.getactivespreadsheet().getrange(row + ":" + row);         (var = 1; < sheet.getlastcolumn() + 1; i++) {             var mycell = myrow.getcell(1, i);             copybody.replacetext("{" + mycell.geta1notation().replace(row, "") + "}", mycell.getvalue());         }         mydoc.saveandclose();         var destfolder = driveapp.getfolderbyid(currentfid);         logger.log(mydocid);         var doc = driveapp.getfilebyid(mydocid); // document again using driveapp time...         doc.addtofolder(destfolder); // add desired folder         doc.removefromfolder(driveapp.getrootfolder()); // did step step more easy follow         var pdf = driveapp.getfilebyid(mydocid).getas("application/pdf");         destfolder.createfile(pdf); // create pdf file in folder         var app = uiapp.getactiveapplication();         app.close();         return app;     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function gettemplates() {         var doc = spreadsheetapp.getactivespreadsheet();         var app = uiapp.createapplication().settitle('generate template');         // create grid 3 text boxes , corresponding labels         var grid = app.creategrid(5, 2);         grid.setwidget(0, 0, app.createlabel('template name:'));         var list = app.createlistbox();         list.setname('templates');         grid.setwidget(0, 1, list);          var folders = driveapp.getfoldersbyname("templates");         while (folders.hasnext())          {           var folder = folders.next();           logger.log(folder.getname());           var allmyfilesbytype = folder.getfilesbytype(mimetype.google_docs)         };         while (allmyfilesbytype.hasnext())         {           var file = allmyfilesbytype.next();           list.additem(file.getname());           logger.log(file.getname());         };          grid.setwidget(1, 0, app.createlabel('row:'));         var row = app.createtextbox().setname('row');         row.setvalue(spreadsheetapp.getactivespreadsheet().getactiverange().getrow());         grid.setwidget(1, 1, row);         var curfn = app.createtextbox().settext('mydrive/').setname('curfn').setid('curfn').setwidth('400');         var curfid = app.createtextbox().settext(driveapp.getrootfolder().getid()).setname('curfid').setid('curfid').setvisible(false);         var listf = app.createlistbox().setname('listf').setid('listf').additem('please select folder', 'x');         grid.settext(2, 0, 'type path:').setwidget(2, 1, curfn).settext(3, 0, 'or').settext(4, 0, 'choose path:').setwidget(4, 1, listf).setwidget(3, 1, curfid);         var folders = driveapp.getrootfolder().getfolders();         while (folders.hasnext()) {             var folder = folders.next();             listf.additem(folder.getname(),folder.getid())         };         var handlerf = app.createserverhandler('folderselect').addcallbackelement(grid);         listf.addchangehandler(handlerf);         var panel = app.createverticalpanel();         panel.add(grid);         var button = app.createbutton('submit');         var handler = app.createserverclickhandler('generatedocument');         handler.addcallbackelement(grid);         button.addclickhandler(handler);         // add button panel , panel application, display application app in spreadsheet doc         panel.add(button);         app.add(panel);         doc.show(app);     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function folderselect(e)  {         var app = uiapp.getactiveapplication();         var currentfn = e.parameter.curfn;         var currentfid = e.parameter.listf;         logger.log(currentfid);         var listf = app.getelementbyid('listf');         var curfn = app.getelementbyid('curfn');         var curfid = app.getelementbyid('curfid');         if (currentfid == 'x') {             currentfid = driveapp.getrootfolder().getid();             curfn.settext('mydrive/')         };         var startfolder = driveapp.getfolderbyid(currentfid);         var folders = startfolder.getfolders();         listf.clear().additem('no more sub folders!', 'x').additem('go root', 'x');         if (folders.length > 0) {             listf.clear();             listf.additem('select sub folder', 'x')         };         while (folders.hasnext()) {             var folder = folders.next();             listf.additem(folder.getname(),folder.getid())         };         curfn.settext(currentfn + driveapp.getfolderbyid(currentfid).getname() + '/');         if (currentfid == driveapp.getrootfolder().getid()) {             curfn.settext('mydrive/')         };         curfid.settext(currentfid);         return app;     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function onopen() {     var ss = spreadsheetapp.getactivespreadsheet();     var menuentries = [{         name: "export row document",         functionname: "gettemplates"     }];     ss.addmenu("generate documents here!", menuentries); } 

problem in statement

var template = driveapp.getfilebyid(e.parameter.templates);

when see e.parameter.templates name in logger file name. driveapp.getfilebyid expect file id.

the above problem can solved when add file id along file name in

list.additem(file.getname(),file.getid());

of gettemplates() method.

here working code

function generatedocument(e)  {         //logger.log(driveapp.getfilesbyname(e.parameter.templates).);         //spreadsheetapp.getui().alert(e.parameter.templates);         var template = driveapp.getfilebyid(e.parameter.templates);         //logger.log(e.parameter.templates.getid());         var sheet = spreadsheetapp.getactivespreadsheet();         var row = number(e.parameter.row) //+1; // remove // in line next +1 skip headers         logger.log(row);         var currentfid = e.parameter.listf;         logger.log(currentfid);         var mydocid = template.makecopy(sheet.getrange('b' + row).getvalue() + ' - ' + sheet.getrange('e' + row).getvalue() + ' - ' + sheet.getrange('d' + row).getvalue() + ' - ' + sheet.getrange('x' + row).getvalue()).getid();         var mydoc = documentapp.openbyid(mydocid);         var copybody = mydoc.getactivesection();         var sheet = spreadsheetapp.getactivespreadsheet();         //row--; // decrement row number in concordance real row numbers in sheet         var myrow = spreadsheetapp.getactivespreadsheet().getrange(row + ":" + row);         (var = 1; < sheet.getlastcolumn() + 1; i++) {             var mycell = myrow.getcell(1, i);             copybody.replacetext("{" + mycell.geta1notation().replace(row, "") + "}", mycell.getvalue());         }         mydoc.saveandclose();         var destfolder = driveapp.getfolderbyid(currentfid);         logger.log(mydocid);         var doc = driveapp.getfilebyid(mydocid); // document again using driveapp time...          destfolder.addfile(doc);//add filder         var pdf = driveapp.getfilebyid(mydocid).getas("application/pdf");         destfolder.createfile(pdf); // create pdf file in folder         var app = uiapp.getactiveapplication();         app.close();         return app;     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function gettemplates()  {         var doc = spreadsheetapp.getactivespreadsheet();         var app = uiapp.createapplication().settitle('generate template');         // create grid 3 text boxes , corresponding labels         var grid = app.creategrid(5, 2);         grid.setwidget(0, 0, app.createlabel('template name:'));         var list = app.createlistbox();         list.setname('templates');         grid.setwidget(0, 1, list);          var folders = driveapp.getfoldersbyname("templates");         while (folders.hasnext())          {           var folder = folders.next();           logger.log(folder.getname());           var allmyfilesbytype = folder.getfilesbytype(mimetype.google_docs)         };         while (allmyfilesbytype.hasnext())         {           var file = allmyfilesbytype.next();           list.additem(file.getname(),file.getid());           logger.log(file.getname());         };          grid.setwidget(1, 0, app.createlabel('row:'));         var row = app.createtextbox().setname('row');         row.setvalue(spreadsheetapp.getactivespreadsheet().getactiverange().getrow());         grid.setwidget(1, 1, row);         var curfn = app.createtextbox().settext('mydrive/').setname('curfn').setid('curfn').setwidth('400');         var curfid = app.createtextbox().settext(driveapp.getrootfolder().getid()).setname('curfid').setid('curfid').setvisible(false);         var listf = app.createlistbox().setname('listf').setid('listf').additem('please select folder', 'x');         grid.settext(2, 0, 'type path:').setwidget(2, 1, curfn).settext(3, 0, 'or').settext(4, 0, 'choose path:').setwidget(4, 1, listf).setwidget(3, 1, curfid);         var folders = driveapp.getrootfolder().getfolders();         while (folders.hasnext()) {             var folder = folders.next();             listf.additem(folder.getname(),folder.getid())         };         var handlerf = app.createserverhandler('folderselect').addcallbackelement(grid);         listf.addchangehandler(handlerf);         var panel = app.createverticalpanel();         panel.add(grid);         var button = app.createbutton('submit');         var handler = app.createserverclickhandler('generatedocument');         handler.addcallbackelement(grid);         button.addclickhandler(handler);         // add button panel , panel application, display application app in spreadsheet doc         panel.add(button);         app.add(panel);         doc.show(app);     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function folderselect(e)  {         var app = uiapp.getactiveapplication();         var currentfn = e.parameter.curfn;         var currentfid = e.parameter.listf;         logger.log(currentfid);         var listf = app.getelementbyid('listf');         var curfn = app.getelementbyid('curfn');         var curfid = app.getelementbyid('curfid');         if (currentfid == 'x') {             currentfid = driveapp.getrootfolder().getid();             curfn.settext('mydrive/')         };         var startfolder = driveapp.getfolderbyid(currentfid);         var folders = startfolder.getfolders();         listf.clear().additem('no more sub folders!', 'x').additem('go root', 'x');         if (folders.length > 0)         {             listf.clear();             listf.additem('select sub folder', 'x')         };         while (folders.hasnext())          {             var folder = folders.next();             listf.additem(folder.getname(),folder.getid())         };         curfn.settext(currentfn + driveapp.getfolderbyid(currentfid).getname() + '/');         if (currentfid == driveapp.getrootfolder().getid()) {             curfn.settext('mydrive/')         };         curfid.settext(currentfid);         return app;     }     //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function onopen()  {     var ss = spreadsheetapp.getactivespreadsheet();     var menuentries = [{         name: "export row document",         functionname: "gettemplates"     }];     ss.addmenu("generate documents here!", menuentries); }