Функция не будет работать должным образом, если я вызову другие функции при отправке формы.
У меня есть функция 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, и ответы в порядке.