2014-10-23 1 views
0

я автоматически создать форму с GAS следующим образом:Повторное Google запускает форму

var form = FormApp.create(form_name); 

ScriptApp.newTrigger('mysubmit') 
.forForm(form) 
.onFormSubmit() 
.create(); 

Проблема заключается в том, что он создает триггер создается каждый раз, когда новая форма. Есть ли способ повторного использования одного и того же триггера? Проблема в том, что ряд триггеров, доступных для моего аккаунта, заканчивается очень быстро.

+0

Я провел некоторое исследование, но не нашел ничего очевидного, чтобы решить вашу проблему. Можете ли вы повторно использовать форму вместо создания множества новых форм? –

+0

Нет, мне нужно много разных форм с одним триггером. – mor

+0

Сколько раз формы используются? Вы можете удалить старые неиспользуемые триггеры. –

ответ

0

Если вы используете скрипт Google Apps для создания формы, а затем создать форму представить триггер для этой формы, триггер Создав прикрепляется к сценарий, а не новая форма. Вот почему вы работаете в 20 triggers/user/script quota limit.

Имейте в виду, что триггеры живут на скриптах, а не на Документах, Листах или Формах. Вы можете использовать скрипт для создания новой формы, но вы не можете использовать скрипт для создания нового скрипта, прикрепленного к этой Форме (скрипты не могут создавать другие скрипты). Это означает, что вы не можете программно создать триггер, который живет в другом документе.

Что вы можете сделать, это создать надстройку форм, при создании новой формы пользователь может попасть в элемент управления меню, чтобы создать триггер отправки формы для этой формы.

+0

Thax Ryan. Надстройка не является досадным случаем, потому что пользователь не должен ничего делать с формой Google. У него есть только мой интерфейс для доступа к нему. Поэтому я сдал и принял лимит в 20 форм для каждого пользователя. – mor

0

Мой workaroung но еще 20 триггеров предел существует

function install_submit_trigger(form, fids) 
{ 
    var allTriggers = ScriptApp.getProjectTriggers(); 
    for(var i = 0; i < allTriggers.length; i++) 
    { 
    ScriptApp.deleteTrigger(allTriggers[i]); 
    } 
    for(var i in fids) 
    { 
    var fid = fids[i]; 
    try 
    { 
     ScriptApp.newTrigger('mysubmit') 
       .forForm(FormApp.openById(fid.fid)) 
       .onFormSubmit‌​().create(); 
    } 
    catch(e) 
    { 
     Logger.log("Error adding trigger: " + e); 
    } 
    } 
    ScriptApp.newTrigger('mysubmit') .forForm(form) .onFormSubmit() .create(); 
} 
Смежные вопросы