I form di google sono moduli on line che
vengono utilizzati per sondaggi e per acquisizione di informazioni in genere. I
moduli si costruiscono in maniera intuitiva, partendo
da https://docs.google.com/forms/. I moduli vengono poi compilati direttamente
on-line (possono essere pubblicati su un sito web o accessibili conoscendo il
link di collegamento) oppure inviati via email. Una volta che il modulo compilato
viene inviato, le informazioni contenute vengono direttamente acquisite (registrate) da un foglio elettronico di
google, associato al modulo stesso. Esso può poi essere esportato sul desktop
in diversi formati. Google dispone si un’ampia documentazione e in molti hanno
già scritto intorno ai form e alla loro personalizzazione lavorando con
javascript. Quindi mi limiterò ad un esempio utile nel lavoro, cioè di come utilizzare i form per notificare
informazioni via mail a più indirizzi. L’esempio non è altro che una
modifica di una funzione di Amit Agarwal chiamata “Sendmail”, riportata nel tutorial
http://www.labnol.org/?p=20884 */ ,che invia una notifica a un solo indirizzo.
Spesso nel lavoro risulta utile utilizzare
i form per registrare velocemente informazioni ricevute, modificarle e
comunicare le risposte via mail ai diretti interessati. Si pensi al caso di un
cittadino che richiede lo smaltimento di un rifiuto ad un tecnico in servizio
di controllo sul territorio. La richiesta viene registrata direttamente “in
situ”, compilando il modulo on-line sul tablet, e trasmessa via mail al
centralino dell’azienda e all’utente stesso. Oppure al caso di due dipendenti
che richiedono telefonicamente un’inversione del turno di servizio assegnato.
La richiesta di “cambio turno” viene registrata direttamente on-line dal
tecnico, e comunicata agli interessati per l’accettazione via email. Quando
richieste di questo tipo sono numerose, come avviene nelle aziende
medio-grandi, si rende necessario “automatizzare” il processo che invia notifiche
a più indirizzi.
Si procede in questo modo:
1.
Accedere a Google
Drive e creare un nuovo foglio elettronico. Si noti che la colonna più a sin., “informazioni
cronologiche” è generata “in più” dal foglio elettronico ed è la colonna 0
(zero). Le intestazioni delle colonne sono generate direttamente dal database
una volta compilato il primo modulo.
Un
foglio già compilato è simile a quello sotto riportato.
2.
Strumenti → Crea
Modulo → Costruire il modulo con l’aggiunta di elementi. In particolare
aggiungere i campi “indirizzo mail del mittente” e “indirizzo mail
destinatario” in quanto vogliamo inviare le notifiche ai dipendenti.
Nella
visualizzazione mail il modulo è simile a quello sotto riportato, dove
compaiono due caselle di controllo (elenco a discesa), chiamate “indirizzi mail
mittente” e “indirizzi mail destinatario”, che contengono gli indirizzi email
dei dipendenti.
3. Modificare lo
script del modulo. Strumenti → Editor di script. Cancellare lo script esistente
e copiare lo script del tutorial http://www.labnol.org/?p=20884 */
4.
Modificare lo
script del tutorial allo scopo di notificare le mail ad entrambi i dipendenti.
Lo script risulta
modificato nella righe
MailApp.sendEmail(email1,
subject, message)
MailApp.sendEmail(email2, subject, message)
Dove
var email1 = e.values [8];
var email2 = e.values [9];
sono
due variabili che assumono il valore contenuto nella cella della Colonna 8 e 9
che nel ns. caso è l’indirizzo mail
/* Send Google Form by Email v2.1 */
/* For customization, contact the developer at amit@labnol.org */
/* Tutorial:
http://www.labnol.org/?p=20884 */
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SendGoogleForm")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
function SendGoogleForm(e)
{
try
{
// You may replace this with
another email address
var email1 = e.values [8];
var email2 = e.values [9];
// Optional but change the
following variable
// to have a custom subject for
Google Form email notifications
var subject = "Google
Docs Form Submitted";
var s =
SpreadsheetApp.getActiveSheet();
var columns =
s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message =
"";
// Only include form fields
that are not blank
for ( var keys in columns ) {
var key = columns[keys];
if ( e.namedValues[key]
&& (e.namedValues[key] != "") ) {
message += key + ' :: '+
e.namedValues[key] + "\n\n";
}
}
// This is the MailApp service
of Google Apps Script
// that sends the email. You
can also use GmailApp for HTML Mail.
MailApp.sendEmail(email1,
subject, message)
MailApp.sendEmail(email2,
subject, message)
} catch (e) {
Logger.log(e.toString());
}
}
Compilare il form e inviarlo via mail. Il database registra le informazioni contenute nel modulo. Inoltre i richiedenti ricevono una notifica del tipo:
In
conclusione, lavorando con i moduli e la loro automazione, siamo in grado di misurare, gestire e controllare i
servizi richiesti e effettuati.
Buon
Lavoro
Daniele
Paolinelli