Uso congiunto di Addons – Vediamo l’esempio di Exporter di Xpand

Uso congiunto di Addons

In questo post andremo ad affrontare un argomento molto interessante : come usiamo in manieta congiunta più addons. Si tratta di una questione molto importante in quanto, in determinati ambiti/necessità, si vuole utilizzare due funzionalità di due addon differenti 🙂

Giusto per chiarire …

…. questo articolo è stato ispirato da un articolo molto bello, riportato da Rui Rodrigues e pubblicato nel blog della Xpand. L’obbiettivo di questo mio post è di riportare, in Italiano, quanto indicato. Si tratta di un Guest Post di Ihor Uksta della iDalko Software Developer ,Atlassian Platinum Solution Partner in Belgio.

Come sempre si tratta di una missione impossibile, ma la affrontiamo con coraggio e cerchiamo di riportare quanto descritto nell’originario, aggiungendo anche una serie di commenti necessari per chiarire o per meglio aiutare nella comprensione.

Iniziamo con le presentazioni

In questo post mostreremo come usare in maniera congiunta due addon molto interessanti. Il primo lo conosciamo molto bene e si tratta di Xporter. Lo abbiamo presentato e testato già in passato e, come tutti gli addon molto interessanti, ne seguiamo sempre tutte le evoluzioni 😀

Il secondo, non meno importante, è Table Grid, che permette di estendere Jira con funzionalità molto interessanti, che adesso andiamo a presentare:

Dalla precedente figura, vediamo che permette di poter inserire delle griglie che, sempre basandoci su quanti vediamo, possiamo inserire delle informazioni come le nostre spese e avere anche dei campi si totali/subtotali etc.

Permette di aggiungere dei campi speciali, come sequence, checkbox radio button, listbox fisse o dinamiche.

Permette di avere delle liste a cascata: i valori che trovi nelle liste successive sono conseguenza dei valori scelti nella lista precedente.

Come possiamo vedere si tratta di un addon molto interessante: lo testeremo  ben bene nei prossimi post.

 

Come possiamo usarli insieme?

Entriamo nel vivo di questo post 🙂 . Il Table Grid, permette di gestire dei campi Table, come abbiamo visto in precedenza. Si tratta si una  Driving Table, una opzione di Table Grid, che permette di inserire delle tabelle nelle issue. Nella figura seguente:

si tratta della tabella etichettata come Developer RateConfiguriamo questa tabella come segue, come mostrato in figura:

Una piccola digressione sulla configurazione, che richiede una spiegazione molto più dettagliata.

Spieghiamo le seguenti proprietà:

  • gd.columns – stabilisce la lista, separata da virgole, delle colonne
  • gd.tablename – Stabilisce il nome della tabella
  • gd.ds – Il nostro datasource. Nell’esempio di tratta di Jira stesso.

For the first column, we’ll define the type ‘userlist’. It means that all your Jira users will be listed in a column. Afterwards, we can limit them to only one group ‘developers’, and set it as ‘required’ when inserting a row to the table.

Tutte le proprietà definite nell’esempio sono reperibili al seguente indirizzo.

Dettagliamo meglio le caratteristiche per definire una singola colonna:

col.developer.type=userlist
col.developer.required=truecol.developer.allow.roles = developers
col.developer.formatUser={username}
col.developer.autocomplete=truecol.rate=Rate
col.rate.type=number

(Vi rimando al test che eseguirò per un dettaglio più completo delle singole proprietà di una tabella, con tutte le spiegazioni: oramai vi ho abituato molto bene).

Andiamo adesso a definire un nuovo campo, per meglio mostrare il funzionamento di questo uso congiunto

andiamo a definire il valore di default

con la seguente configurazione.

gd.columns=developer,totalhours,startdate,enddate,salary
gd.tablename=teaminfo
gd.ds=jiracol.developer=Developer
col.developer.type=userlist
col.developer.required=true
col.developer.allow.groups = developers
col.developer.formatUser={username}
col.developer.autocomplete=true
col.developer.width=150col.totalhours=Hours Spent
col.totalhours.type = number
col.totalhours.formula = queries:value(‘jira’, “SELECT timeworked FROM worklog where created >=  ‘” + {startdate} + “‘ and updated <= ‘” + {enddate} + “‘ and author = ‘” +{developer} + “‘”) / 3600
col.totalhours.width= 120
col.totalhours.formatNumber = #.## h
col.totalhours.summary = sumcol.startdate=From
col.startdate.type=date
col.startdate.defaultDate = -1wcol.enddate=Till
col.enddate.type=date
col.enddate.defaultDate = +1dcol.salary=Salary
col.salary.type= number
col.salary.formatNumber = #.## $
col.salary.formula = queries:value(‘jira’, “SELECT rate FROM developer_rate_d2 where developer = ‘” + {developer} + “‘”) * {totalhours}
col.salary.summary = sum

Come possiamo osservare, si tratta di una configurazione che permette di definrie anche campi calcolati, interrogazioni al datasource definito, etc.

Terminata la configurazione, ed inserito il nuovo campo nelle opportune screen del progetto, possiamo sfruttare subito queste nuove informazioni

come mostrato in figura, ed arrivare a generare il report del team report issue, in maniera semplice e rapida.

ottenendo il seguente risultato

 

Adesso che abbiamo i dati …. Report

Passiamo subito al report. Qui entra in gioco Xporter che, come già indicato nei precedenti post, permette di definire il template da utilizzare

utilizzando i metatag tra {}. Quindi configuriamo il template:

Sempre nella fase di configurazione, andiamo a definire dove il template sarà disponibile, ovvero se lo sarà su esportazione, su bulk function, workflow post-functions, etc.

Manteniamoci sul semplice e andiamo ad usarlo solo nella fase di esportazione semplice della issue

ottenendo il seguente risultato:

Giudizio?

Una sola parola: S P E T T A C O L O. Abbiamo utilizzato la combinazione di due addon per generare un risultato spettacolare. Questo significa che possiamo generare dei report che permettono di riassumere tutta una serie di lavori in maniera ….. SEMPLICE. Non male come risultato.

 

Che altro?

Possiamo aggiungere diverse altre caratteristiche:

 

Table Grid Editor

  • Datasource nell’esempio leggeva da Jira, ma potrebbe essere configurato per leggere i dati da un database separato ed incrociare i dati;
  • Issue values placeholders to be used in formulas or SQL queries (issue id, assignee, etc.).
  • Possiamo inserire dati dinamici da altri campi
  • Il campo custom Table Grid Reader, che è in sola lettura, può essere compilato con query SQL.
  • Campi custo Multi-Level Cascade , i quali hanno  drop-down dinamici popolati attraverso query SQL i quali potrebbero avere delle dipendenze tra di loro. Questo è anche compatibile con Service Desk.
  • Java and Rest API sempre diponibili.

Xporter

  • Esportare in formato PDF, XLSX, PNG, DOC, CSV ed altri ancora.
  • Esportare altre informazioni quali linked issues, sub-tasks, commenti, worklogs, allegati ed altro ancora.
  • Generare documentazione basata su un insieme di più issue.
  • Creare ed inviare documenti via mail verso un file server.
  • Post-functions to trigger export event on issue transitions.

Come potete vedere abbiamo tantissime possibilità di espandere questo esempio al fine di coprire le nostre necessità.

 

Conclusioni

Abbiamo visto un uso congiunto di due addon e di come ci possono aiutare nella vita di tutti i giorni. Nei prossimi post cercheremo di mostrare molto più nel dettaglio altri utilizzi congiunti 🙂

 

Reference

Vi riporto l’articolo originario della portoghese XPand, che potete reperire al seguente indirizzo.

 

Likes(0)Dislikes(0)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *