Когда форма Google отправлена, функция не будет работать, если я использую несколько вызовов функций - PullRequest
1 голос
/ 11 октября 2019

Функция не будет работать должным образом, если я вызову другие функции при отправке формы.

У меня есть функция capturarDatos (событие), которая связана с триггером при отправке формы для получения ответов. Я загружаю ответы в функцию documentCreator, чтобы создать шаблон документа. Когда я помещаю код из documentCreator в основную функцию, он работает правильно. В противном случае он будет работать нормально, или нет, случайно. Это не работает:

function capturarDatos(event) {
 var responses = event.response.getItemResponses();

 documentCreator(responses);

}




function documentCreator(responses) {
dni = responses[0].getResponse();
apellido=responses[1].getResponse();
nombre=responses[2].getResponse();
arancel=responses[3].getResponse();
anioIngreso=responses[4].getResponse();
carrera=responses[5].getResponse();
ciudadNacimiento=responses[6].getResponse();
fechaNacimiento=responses[7].getResponse();
nacionalidad=responses[8].getResponse();
domicilio=responses[9].getResponse();
localidad=responses[10].getResponse();
telefono=responses[11].getResponse();
estadoCivil=responses[12].getResponse();
codigoPostal=responses[13].getResponse();
email=responses[14].getResponse();
censo=responses[15].getResponse();
controlActas=responses[16].getResponse();
controlInterno=responses[17].getResponse();
fechaFinalizacion=responses[18].getResponse();
resolucion=responses[19].getResponse();
intervino=responses[20].getResponse();



  var templateid = "1eB3scWh_IHLTRlfjqMccN4LbZanUN_r_-oLK4zNK4_o";
    var docid = DriveApp.getFileById(templateid).makeCopy().getId();
    var doc = DocumentApp.openById(docid); 
    doc.setName(dni);

    var body = doc.getActiveSection();




body.replaceText("{dni}", dni);
body.replaceText("{apellido}", apellido);
body.replaceText("{nombre}", nombre);
body.replaceText("{arancel}", arancel);
body.replaceText("{anioIngreso}", anioIngreso);
body.replaceText("{carrera}", carrera);
body.replaceText("{ciudadNacimiento}", ciudadNacimiento);
body.replaceText("{fechaNacimiento}", fechaNacimiento);
body.replaceText("{nacionalidad}", nacionalidad);
body.replaceText("{domicilio}", domicilio);
body.replaceText("{localidad}", localidad);
body.replaceText("{telefono}", telefono);
body.replaceText("{estadoCivil}", estadoCivil);
body.replaceText("{codigoPostal}", codigoPostal);
body.replaceText("{email}", email);
body.replaceText("{censo}", censo);
body.replaceText("{controlActas}", controlActas);
body.replaceText("{controlInterno}", controlInterno);
body.replaceText("{fechaFinalizacion}", fechaFinalizacion);
body.replaceText("{resolucion}", resolucion);
body.replaceText("{intervino}", intervino);





        doc.saveAndClose()
        lele= doc.getId();



        var o;

  o = {
    'fileToMoveID':lele,
    "targetFolderID":"1AUYekR4pM7y7i0h5yyn94bYAc0hdeXZ2"
  }

  moveFile(o);

  }


function moveFile(parameterObject) {
  var currentFolderID,file,fileToMoveID,sourceFolder,targetFolder,targetFolderID;

  fileToMoveID = parameterObject.fileToMoveID;
  currentFolderID = parameterObject.currentFolderID;
  targetFolderID = parameterObject.targetFolderID;

  file = DriveApp.getFileById(fileToMoveID);//Get the file to move

  if (!file) {
    functionToHandleThisKindOfThing("there is no file");
    return;
  }

  if (currentFolderID) {//The folder ID holding the current file was passed in
    sourceFolder = DriveApp.getFolderById(currentFolderID);
  } else {//No ID for the current folder
    sourceFolder = file.getParents();
    if (sourceFolder) {
      if (sourceFolder.hasNext()) {
        sourceFolder = sourceFolder.next();
      }
    }
  }

  targetFolder = DriveApp.getFolderById(targetFolderID);

  targetFolder.addFile(file);
  sourceFolder.removeFile(file);
}


Это работает:

function capturarDatos(event) {
 var responses = event.response.getItemResponses();


dni = responses[0].getResponse();
apellido=responses[1].getResponse();
nombre=responses[2].getResponse();
arancel=responses[3].getResponse();
anioIngreso=responses[4].getResponse();
carrera=responses[5].getResponse();
ciudadNacimiento=responses[6].getResponse();
fechaNacimiento=responses[7].getResponse();
nacionalidad=responses[8].getResponse();
domicilio=responses[9].getResponse();
localidad=responses[10].getResponse();
telefono=responses[11].getResponse();
estadoCivil=responses[12].getResponse();
codigoPostal=responses[13].getResponse();
email=responses[14].getResponse();
censo=responses[15].getResponse();
controlActas=responses[16].getResponse();
controlInterno=responses[17].getResponse();
fechaFinalizacion=responses[18].getResponse();
resolucion=responses[19].getResponse();
intervino=responses[20].getResponse();



  var templateid = "1eB3scWh_IHLTRlfjqMccN4LbZanUN_r_-oLK4zNK4_o";
    var docid = DriveApp.getFileById(templateid).makeCopy().getId();
    var doc = DocumentApp.openById(docid); 
    doc.setName(dni);

    var body = doc.getActiveSection();




body.replaceText("{dni}", dni);
body.replaceText("{apellido}", apellido);
body.replaceText("{nombre}", nombre);
body.replaceText("{arancel}", arancel);
body.replaceText("{anioIngreso}", anioIngreso);
body.replaceText("{carrera}", carrera);
body.replaceText("{ciudadNacimiento}", ciudadNacimiento);
body.replaceText("{fechaNacimiento}", fechaNacimiento);
body.replaceText("{nacionalidad}", nacionalidad);
body.replaceText("{domicilio}", domicilio);
body.replaceText("{localidad}", localidad);
body.replaceText("{telefono}", telefono);
body.replaceText("{estadoCivil}", estadoCivil);
body.replaceText("{codigoPostal}", codigoPostal);
body.replaceText("{email}", email);
body.replaceText("{censo}", censo);
body.replaceText("{controlActas}", controlActas);
body.replaceText("{controlInterno}", controlInterno);
body.replaceText("{fechaFinalizacion}", fechaFinalizacion);
body.replaceText("{resolucion}", resolucion);
body.replaceText("{intervino}", intervino);





        doc.saveAndClose()
        lele= doc.getId();



        var o;

  o = {
    'fileToMoveID':lele,
    "targetFolderID":"1AUYekR4pM7y7i0h5yyn94bYAc0hdeXZ2"
  }

  moveFile(o);

  }


function moveFile(parameterObject) {
  var currentFolderID,file,fileToMoveID,sourceFolder,targetFolder,targetFolderID;

  fileToMoveID = parameterObject.fileToMoveID;
  currentFolderID = parameterObject.currentFolderID;
  targetFolderID = parameterObject.targetFolderID;

  file = DriveApp.getFileById(fileToMoveID);//Get the file to move

  if (!file) {
    functionToHandleThisKindOfThing("there is no file");
    return;
  }

  if (currentFolderID) {//The folder ID holding the current file was passed in
    sourceFolder = DriveApp.getFolderById(currentFolderID);
  } else {//No ID for the current folder
    sourceFolder = file.getParents();
    if (sourceFolder) {
      if (sourceFolder.hasNext()) {
        sourceFolder = sourceFolder.next();
      }
    }
  }

  targetFolder = DriveApp.getFolderById(targetFolderID);

  targetFolder.addFile(file);
  sourceFolder.removeFile(file);
}


Я ожидал, что буду работать без проблем, используя функции, но он останавливается случайным образом, мне нужны функции для создания большего количества документов при отправке. Я попытался вызвать базовую функцию с помощью Logger.log, и ответы в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...