Получение ошибки для функции next () при попытке запустить функцию из общего листа - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть скрипт, который экспортирует лист в PDF-файл при запуске функции. Это работает нормально, когда я запускаю его из учетной записи, в которой был создан скрипт, но когда запускается общий пользователь, он возвращает следующую ошибку: Exception: Cannot retrieve the next object: iterator has reached the end. Line 9

Код такой, как показано ниже, я не уверен, что на самом деле не так с этим, поэтому был бы рад помочь:

function CreatePDF() {
  var sourceSpreadsheet = SpreadsheetApp.getActive();   
  var ui = SpreadsheetApp.getUi();
  var sheetName = "Stock List";
  var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName);
  var sh = sourceSpreadsheet.getSheetByName("Product List");
  var driveFile = DriveApp.getFileById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
  var parentFolder = driveFile.getParents();
  var folderName =parentFolder.next().getId();
  var folder = DriveApp.getFolderById(folderName); 
  var numf = sourceSpreadsheet.getRangeByName("exportrange").getValue();
  var anof = numf.split("/",2);

  var pdfRange = sh.getRange("F1");
  var pdfName = pdfRange.getValue();

  // export url
  var url = 'https://docs.google.com/spreadsheets/d/'+sourceSpreadsheet.getId()+'/export?exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
  + '&size=A4'                           
  + '&portrait=true'                     
  + '&fitw=true' 
  + '&top_margin=0.00'              
  + '&bottom_margin=0.00'          
  + '&left_margin=0.00'             
  + '&right_margin=0.00'  
  + '&sheetnames=false&printtitle=false' 
  + '&pagenumbers=false&gridlines=false' 
  + '&fzr=false'                         
  + '&gid='+sourceSheet.getSheetId();    

  var token = ScriptApp.getOAuthToken();

  var response = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' +  token
    }
  });

  var theBlob = response.getBlob().setName(pdfName+'.pdf');

  var files = folder.getFilesByName(pdfName);
  while (files.hasNext())
  {
    files.next().setTrashed(true);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...