Cum se face ca onFormSubmit să se declanșeze automat? (Programare, Google Apps Script, Google Sheets)

user2640294 a intrebat.

Codul „fix” (test_onformsubmit) pe care l-ați dat, trebuie să îl execut manual de fiecare dată când există date noi în foaia de calcul. Voiam să trimit automat pdf-ul la e-mail atunci când Formularul este trimis. Există o modalitate? Pentru că modalitatea manuală rulează codul exact așa cum ar trebui să o facă, dar eu vreau ca acest lucru să fie un eveniment automat, astfel încât să nu mai trebuiască să fac nimic.

A se vedea firul părinte al problemei/întrebării originale

1 răspunsuri
Mogsdad

Citiți Înțelegerea declanșatoarelor. Această funcție este un declanșator instalabil, astfel încât trebuie să o configurați pentru a se executa atunci când este trimis un formular. Este ușor – aș fi crezut că un tutorial Forms ar fi trecut prin asta.

În Editorul de scripturi:

  1. Alegeți Editare > Declanșatoarele proiectului curent. Veți vedea un panou cu mesajul Nu există declanșatoare configurate. Faceți clic aici pentru a adăuga unul acum.
  2. Faceți clic pe link.
  3. Sub Run, selectați funcția pe care doriți să fie executată de declanșator. (Aceasta este onFormSubmit(), în acest caz).
  4. Sub Evenimente, selectați Din foaie de calcul.
  5. Din următoarea listă derulantă, selectați La trimiterea formularului.
  6. Faceți clic pe Salvați.

Din acest moment, funcția va fi declanșată de fiecare dată când un formular este trimis în foaia de calcul.

Dacă intenționați să partajați scriptul, fiecare destinatar va trebui să repete acești pași.


Ca o paranteză, ar trebui să modificați setarea de e-mail din scriptul dvs., astfel încât să funcționeze pentru ORICE persoană.

var email_address = Session.getActiveUser().getEmail();

Comentarii

  • Urăsc să fiu atât de novice, dar chiar aș vrea să fac acest lucru să funcționeze, astfel încât să pot împărtăși cu colegii mei educatori. În acest fel, odată ce aceștia trimit formularul, se creează automat un pdf cu răspunsul lor și se trimite pdf-ul ca atașament la adresa lor de e-mail. –  > Por utilizator2640294.
  • Funcționează foarte bine! Vă mulțumim pentru ajutor. –  > Por user264040294.
  • Cum obținem evenimentul e, pe care îl pot vedea în multe tutoriale și chiar în documentație, din care putem obține alți parametri precum „e.values”, etc.? Când folosesc onFormSubmit(e), mi-a dat eroare: „TypeError: Nu se poate citi proprietatea „values” din undefined.” De asemenea, am încercat: „formSubmitReply(e)”, care la rândul său nu funcționează! –  > Por Srichakradhar.
  • @Srichakradhar – puneți o întrebare într-un comentariu la un răspuns vechi de 2 ani; ar fi fost mai bine să căutați mai întâi un răspuns (care există), apoi să puneți o nouă întrebare (dacă căutarea nu a avut succes). Se pare că execuți funcția în editor, unde nu primește un eveniment. Consultați Cum pot testa o funcție de declanșare în GAS?. –  > Por Mogsdad.
  • Ar fi frumos dacă ar putea folosi și o funcție din orice alt fișier de script. –  > Por technazi.