2013-03-06 3 views
4

Я пытался собрать сценарий подтверждения от, как описано здесь: http://alamoxie.com/blog/tech-tips/sending-confirmation-emails-google-docs-form/Google Формы подтверждения сценария

Но я всегда получаю этот код ошибки:

TypeError: Cannot read property "values" from undefined. (line 5, file "Confirmation Email") 

Цель сценария над стандартное подтверждение - иметь форму, которую можно легко прочитать и распечатать, которая занимает только одну страницу с только соответствующей информацией, а не стандартное подтверждение, которое выплескивает 12 страниц.

В этом случае я использую его для создания заказа на питание. Реквестер будет выбирать, какие элементы они хотят для события, отправить его, затем подтверждение электронной почты будет отправлено администратору, который может быть напечатан и передан на кухню. Я успешно создал документ типа слияния, но он отправляет подтверждение для всего в списке, и все, что я хочу, это самая последняя введенная строка (следовательно, сценарий подтверждения).

Так вот мой код:

function onFormSubmit(e) { 

    // First establish the variables. Name each variable by the e.values (column number in the spreadsheet). 

    var timeStamp = e.values[0]; 
    var Activity = e.values[2]; 
    var pickUp = e.values[3]; 
    var pickUptime = e.values[4]; 
    var nPeople = e.values[5]; 
    var submitUser = e.values[6]; 
    var Equipment = e.values[7]; 
    var Drinks = e.values[8]; 
    var Breakfast = e.values[9]; 
    var Lunch = e.values[10]; 
    var Dinner = e.values[11]; 
    var eveningProgram = e.values[12]; 
    var Event = e.values[13]; 
    var Snacks = e.values[14]; 
    var Notes = e.values[15]; 
    var userEmail = e.values[17]; 

    // These are the components of the email confirmation 

    var emailTo = userEmail; 
    var CCAddr = "[email protected]"; 
    var subject = "Food Order Request"; 
    var emailBody = "Food Order Requisition\n\n" + 
        "Pick up Date:" + pickUp + 
        "\nPick up Time:" + pickUptime + 
        "\nSubmitted by:" + submitUser + 
        "\nDate Submitted:" + timeStamp + 
        "\n\nActivity:" + Activity + 
        "\nPeople:" + nPeople + 
        "\nMeal:" +Event + 
        "\nThe following is needed for" + Activity + "by" + submitUser + "who can be reached at" + userEmail + 
        "\n\nEquipment and Supplies:\n" + Equipment + 
        "\n\nDrinks:\n" + Drinks + 
        "\n\nSnacks:\n" + Snacks + 
        "\n\nBreakfast:\n" + Breakfast + 
        "\n\nLunch:\n" + Lunch + 
        "\n\nDinner:\n" + Dinner + 
        "\n\nEvening Program/Special Events:\n" + eveningProgram + 
        "\n\nThe following special notes were also requested:\n" + Notes + 
        "\n\nProcessed by:___________________ Processed Date & Time:_________________________Food Order Requisition"; 

    /** 
    * Un-comment this to use it for debugging 
    */ 
// for (var i in e.values) { 
// Logger.log("" + i + ":" + e.values[i]); 
// } 

        MailApp.sendEmail(emailTo, subject, emailBody); 


} 

Проблема это говорит мне, что мои ценности не определены, и я не могу понять, почему ... Может кто-нибудь помочь с этим?

ответ

5

Этот сценарий не может быть выполнен из редактора сценариев, он работает только в том случае, если он инициируется отправкой формы, так что e (информация о событии) получает свой параметр. Если вы выбрали редактор сценариев, информация о событии - undefined, что логично, так как не произошло никакого события.

Поэтому вы должны проверить его, отправив формы.

EDIT: Вы должны создать onFormSubmit trigger сделать запуск сценария, когда форма передается: see doc here а также here

+0

я не получаю электронные письма от формы/скрипт –

+0

вы авторизовать скрипт для почты оказание услуг ? если да, попробуйте дублировать строку Mailapp и замените emailTo своим почтовым адресом, чтобы проверить, как это работает. –

+0

Я санкционировал электронные письма, когда я впервые сыграл сценарий. Я попробовал вашу новую строку mailapp, и я все равно получаю только подтверждение сгенерированного Google, но не подтверждение скрипта. –

Смежные вопросы