Google Editor Add-On

Photo by Mika Baumeister on Unsplash

C’è un elemento piuttosto critico nella nostra catena di strumenti che vive su dei fogli Google Sheets. La scelta al tempo ci sembrò ovvia ed anche oggi sembra essere la soluzione migliore per le nostre necessità.

Questi oggetti contengono del codice sotto forma di Google App Script e sono responsabili di due elementi fondamentali per il buon funzionamento dello strumento:

  • Esiste tutta una serie di funzioni che ci permette di manipolare le informazioni che abbiamo inserito in funzione della organizzazione del progetto.
  • Un’altra serie di funzioni si occupa di inviare i dati elaborati sul foglio a Salesforce per evitare che le persone debbano perdere tempo ad inserire manualmente i dati dall’altra parte.

Sino ad oggi ha fatto egregiamente il suo lavoro ma va detto che avere il codice presente su ogni singolo Google Sheets è estremamente inefficiente.

Anche se lo strumento si è consolidato nel corso degli anni e non richiede particolare manutenzione è altrettanto vero che in alcuni casi particolari genera qualche errore che è necessario sistemare.

Per la cronaca, il foglio in oggetto è completamente opera mia sia per la parte di elaborazione locale che per la parte che si occupa di interfacciarsi con Salesforce.

La prima parte è stata più complicata della seconda. Le regole che governano l’assegnazione delle risorse ai progetti sono piuttosto complesse e tutto gira intorno al concetto di iterazione. L’integrazione con Salesforce è stata, invece, una passeggiata di salute. Ringraziando il cielo le REST API di Salesforce ed il massivo utilizzo di SOQL hanno reso tutto più facile. Tra l’altro la documentazione di Salesforce è incredibilmente precisa ed è stata di grande aiuto per il lavoro. Quando pensate alla documentazione di API date una occhiata a Salesforce e copiate!

Complice il fatto che è necessario introdurre delle modifiche in funzione della nuova struttura organizzativa si è manifestata la necessità di mettere mano al foglio ed al codice.

Ho colto l’occasione per fare in modo che tutto il codice venisse eliminato dai singoli fogli e migrato in un Google Editor Add-on.

Questo passaggio ci consentirà di centralizzare tutto il codice in un unico punto e distribuire gli aggiornamenti in maniera automatica.

Il passaggio non è stato affatto banale.

La documentazione di Google non è fatta così bene come quella di Salesforce.

La prima cosa che devi fare è creare un progetto su Google App Scripts, a questo punto devi creare un altro progetto su Google Cloud Project per poi legare le due cose all’interno del progetto Google App Scripts. Per poterlo pubblicare devi abilitare le Google Workspace Marketplace SDK e poi procedere, anche se è un progetto che verrà usato solo dalla tua organizzazione.

Fatto tutto questo sei pronto a portare il codice.

In realtà il processo è molto più complicato ed articolato rispetto a quanto ho brevemente descritto poco sopra. Se a qualcuno interessa potrei anche scrivere un post tutorial sul tema. Se vi interessa fate un fischio o, in alternativa, mettevi in contatto con me che vi racconto. Non è rocket science ma ci sono dei passaggi molto poco intuitivi. Beh, molto poco intuitivi per me. Può anche essere che sia io a non essere sufficientemente sveglio.

Visto che ero già in scia per il cambiamento ho deciso anche di implementare oauth2 per fare in modo che gli utenti si autentichino in autonomia su Salesforce senza usare un utente generico come nella versione precedente.

Anche questo passaggio in Google App Scripts non è proprio del tutto banale. Anche per questo varrebbe la pensa fare un tutorial o rilasciare il codice su GitHub in modo che sia utilizzabile. Non ho trovato nulla di utile da cui copiare per cui è tutto frutto del mio piccolo cervello.

Ci sono degli esempi di autenticazioni oauth2 sul profilo github di Google e funzionano pure. Il problema è che sono basati su AngularJS che è stato discontinuato a Gennaio 2022 e mettermi a studiare per portare il codice su Angular era proprio al di fuori dei miei desideri.

L’autenticazione oauth2 viene quindi fatta con HTML e Javascript all’interno di una sidebar in Google Sheets. C’è un pochino di zucchero estetico e di usabilità fatto con la buona vecchia libreria jquery.

Per il momento tutto sembra che funzioni a dovere.

Ora comincia il lavoro di porting del codice e sarà anche l’occasione per renderlo meno agricolo di quanto non fosse in precedenza.

La verità è che questa cosa mi sta divertendo così tanto che ci sto lavorando sopra anche oggi che è sabato. Fuori il tempo è brutto e la moto rimane in garage, ho un impegno nel pomeriggio e quindi ho un pochino di tempo questa mattina e non ho molta voglia di fare altro. Tra l’altro sto scoprendo un paio di cose interessanti su Google App Scripts che ho proprio voglia di approfondire. Forse questo non si può chiamare lavoro nel senso proprio del termine.

E tutto questo senza contare il passaggio all’engine V8 di Google App Script che è uscito da troppo tempo per poterlo trascurare ancora.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Commenti
Newest
Oldest Most Voted
Inline Feedbacks
View all comments