Lucidchart & Atlassian – Una sinergia interessante

Esplorazione continua

In questo post andremo ad esplorare una sinergia esistente tra Atlassian e Lucidchart. Vedremo cosa è possibile realizzare attraverso questi due prodotti e dove possiamo spingerci.

 


 

Le presentazioni, prima di tutto

Come sempre, prima di iniziare qualsiasi elucubrazione, occorre fare le presentazioni del caso.

Lucidchart è un servizio web che permette ai gruppi di utenti di lavorare e collaborare insieme e di realizzare dei diagrammi di flusso, schemi e grafi. Come riportato nella pagina wikipedia (in inglese), Lucidchart è l’arternativa online di Visio di Microsoft.

Lo strumento è molto versatile è permette di disegnare qualsiasi grafico:

e il tutto via web e direttamente sul nostro browser, come possiamo v edere dalla seguente GIF animata:

Interessante ma ….

…. come lo andiamo ad integrare con i prodotti Atlassian? Mi allaccio al seguente articolo di Lucidchart, dove abbiamo una descrizione, in inglese, di come avviene questa integrazione.

Attraverso opportune apps (ex addons) è possibile utilizzare il servizio on line ed integrare direttamente i grafici generati su Confluence, Jira , Hipchat e BItbucket.

Per BitBucket (al momento solo la versione cloud), possiamo generare diagrammi UML, come mostrato in figura:

mentre per Confluence e JIRA abbiamo a disposizione sia la versione cloud che la versione Server.

Su Hipchatr, al momento, abbiamo a disposizione la versione Cloud. Includo il seguente video per meglio capire (audio in inglese) come funziona il tutto:

https://youtu.be/e49GEM27C-s

 

 

Conclusioni

Abbiamo sbirciato solamente in questo argomento. Nei prossimi post approfondiremo il tutto e cercheremo di capire che altro offre il marketplace, confrontando e analizzando quali possibilità offrono.




Webnair XRay – Un riassunto delle ultime novità

Ci riproviamo nuovamente ….

In questo post cercheremo di riassumere un Webnair della Portoghese XPand-IT, in cui viene descritto XRay ed Xpand, due prodotti indispensabili per il lavoro.

  

Parleremo di ….

….. XRay usando quanto visto durante il webnair e da li cercheremo di descriverlo raccontando quanto descritto ed i punti salienti. Poi non vi lamentate se vi faccio venire la voglia di registrarvi e vedere il prossimo :-P.

Mi servirò delle slide e delle schermate che sono state usate durante il webnair, oltre ai post che ho già pubblicato. Creeremo un percorso virtuale che descrive funzionalità salienti ed i punti interessanti.

 

Partiamo

Partiamo con questo cammino virtuale con la slide di presentazione.

dove lo speaker presenta gli argomenti del webnair. Gli argomenti trattati sono molto interessanti emi permetto di citare ance il punto 6…..

…. dove viene descritto un argomento molto a cuore di coloro che eseguono i test 🙂 . Il Webnair ha descritto in maniera esaustiva e completa tutti gli aspetti dell’addon, partendo dalla configurazione (attraverso la quale l’App si adatta alle nostre esigenze) ….

E’ stata mostrata la facilità di creare i task di test e le varie parti coinvolte nella generazione/gestione dei test.

Particolare attenzione agli step dei test, che possiamo importare anche da altre fonti in maniera mooooooooooooooooooooooooooooooolto più agevole (se ci semplifichiamo la vita siamo sempre molto più contenti).

che come abbiamo visto il tutto si è stato importato velocemente e bene 🙂

Grande, ma vediamo qualcosa di interessante?

Certamente 🙂 . Durante il Webnair è stato presentato anche come utilizzare i test automatici attraverso Cucumber.

Durante il webnair è stato mostrato il funzionamento, con un semplice esempio ma efficace, sfruttando cucumber.

E la versione 3.0? che sorprese?

Una delle novità riguarda il Test Repository per il progetto

Sono stati anche introdotti degli strumenti ulteriori, per semplificare/automatizzare la vita degli sviluppatori. A tale proposito è stato mostrato come Xport introduce ulteriore valore aggiunto:

Abbiamo anche la possibilità di eseguire delle ricerche

Reports?

Possiamo rispondere solo come segue: Quanti ne vogliamo :-D.

E la integrazione con AGILE?

La abbiamo :-D.

Al termine del webnair, una esaustiva sessione delle Q&A, dove i tecnici Xpand hanno risposto a tutte le domande.

terminando il tutto con la indicazione della documentazione/esempi di uso

 

Conclusioni

Sono eventi molto ben fatti ed organizzati (si lo so: sono in inglese, ma datemi tempo e presto saranno in Italiano) e il mio suggerimento e di parteciparvi. Sono gratuiti e li potete visionare direttamente da casa vostra/ufficio. La possibilità di intervenire è garantita dal mezzo utilizzato per il webnair. Se poi potete solo vederli in parte (tutti lavoriamo e tutti sappiamo come funziona il mondo), non vi preoccupate. Il webnair viene registrato e vi arriva il link alla registrazione. Potete rivederli e riesaminarli, anche se volete ricontrollare/riesaminare una sezione particolare.




Confluence – Come configurare l’administrator contact form

Un altro piccolo tutorial

In questo post continuiamo con i nostri tutorial, per guidarci nella impostazione della nostra istanza di Confluence.

Una precisazione

Ringrazio Lud per i suoi commenti, che vi invito a leggere.

Grazie alle sue precisazioni ho verificato che effettivamente sono stato troppo veloce nello scrivere il post e di conseguenza non era molto chiaro. Mi scuso con i lettori. Il post è stato quindi sottoposto a revisione per meglio spiegare l’argomento.

 

Confluence Administrator Contact Form

Vediamo come configurare la Confluence Administrator Contact Form. Si tratta di una Form per contattare gli amministatori che Confluence mette a disposizione. Questa form viene proposta sempre quando si presenta una situazione spiacevole: Un errore 500, come mostrato dalla seguente figura:

Questa è la maschera che viene proposta agli utenti:

Come per il precedente tutorial, dedicato a Jira, anche in questo caso con pochi semplici passi andiamo a configurare il tutto

Come procediamo?

Selezioniamo la pagina di amministrazione del nostro Confluence e cerchiamo la sezione System.

Dalla sezione Site Configuration andiamo ad attivarla (abbiamo apposita checkbox) e da li andiamo a configurare anche il testo della nostra Contact form. Teniamo conto che il testo che possiamo proporre, possiamo inserire il Wiki Markup, per inserire formattazioni ed altro ancora.

Tutto?

Consiglio di avere attivato l’invio delle email e di tenere sotto controllo le notifiche. In aggiunta possiamo introdurre anche il captcha, per evitare che …. lo spam regni sovrano. Come mostrato nella precedente immagine, abbiamo una voce del menù di amministrazione di Confluence che ci permette di attivare e configurare tale opzione e di riuscire .

Dalla manualistica potete vedere che questa opzione si attiva per più componenti, quale i commenti o l’editazione di pagina. Date una occhiata al precedente link per maggiori dettagli.

Ma non è finita. Potete richiamate la maschera di contatto anche dal seguente link:

https:// < Base-URL > / contactadministrators.action

 

Reference

Consiglio anche la lettura (lo so: è in inglese; ma la consiglio lo stesso) di questa pagina della manualistica, per avere un quadro completo.




Tutorial – Come configurare l’administrator contact form

Tutorial – Jira Administrator Contact Form

In questo post andremo a trattare un argomento didattico: Vediamo come configurare la parte di Administrator Contact Form.

 

 

Di cosa di tratta?

Si tratta della Form che può essere utilizzata per comunicare con l’Administrator del nostro Jira.

Se non la configurazione non è ben fatta, il risultato che possiamo avere è il seguente:

Come lo configuriamo?

Pochi semplici passi e lo configuriamo :-). Si parte dalla prima configurazione, che consiste nell’accesso alla sezione di amministrazione System e da li attivare tale form.

dove abbiamo una apposita …. opzione che attiva tale form di contatto. Ma non basta. Occorre anche assicurarsi che la nostra istanza di Jira sia in grado di inviare delle mail. Di conseguenza deve essere configurata la sezione di outgoing mail.

Un esempio lo abbiamo già visto e pubblicato in un altro post del blog, dove abbiamo mostrato come utilizzare google per inviare mail nella nostra istanza.

 

Manca qualcosa?

No. Non manca altro. 🙂 Ovviamente vi invito sempre e comunque a consultare la manualistica di Jira. Come ho imparato le versioni si evolvono e di conseguenza è sempre bene aggiornarsi, nei limiti umani e del possibile ovviamente, con le nuove versioni.

 

Reference

Vi rimando ai seguenti link per maggiore informazioni.

 




Esploriamo alcuni addon di pubblica utilità

Viaggio esplorativo

In questo post torniamo ad esaminare gli addon prodotti dalla tedesca Decadis AG. Si tratta di addon che ritengo di pubblica utilità e che permettono di poter migliorare la vita di chi deve gestire e assistere gli utenti delle nostre istanze JIRA.

Di cosa si tratta?

Potremmo parlare per mesi di questi addon. Sono tanti, sono molto interessanti. Ho avuto il piacere di potermi confrontare con le persone di Decadis AG e posso assicurare che si tratta di persone serie e che sanno fare il loro mestiere.

Partiamo da due addon particolari che, con una semplice azione, ci aiutano nel lavoro di amministrazione e controllo di tutti i giorni. LastLog.

 

Di cosa si tratta?

Disponibile solo per Server, si tratta di due addon (uno per JIRA ed uno per Confluence) che permettono di poter leggere i log dei server direttamente da una apposita sezione, senza dover accedere direttamente al server, o alla riga di comando, per verificare che cosa sta succedendo.

Abbiamo la possibilità di poter selezionatre il file e di visualizzare le informazioni in esso contenute e….. cosa non meno importante, i due addon sono gratuiti 🙂

Come possiamo osservare dalla precedente immagine, abbiamo solo la necessità di inserire pochi ma efficaci parametri per poter osservare il contenuto del log…. il tutto in maniera molto semplice.

Conclusioni

Solo una: Abbiamo a disposizione uno strumento molto valido. Nei prossimi post andremo a testare questi addon cercando come sempre di capire limiti e possibilità offerte 🙂

Reference

Maggiori informazioni sono reperibili nelle seguenti pagine del marketplace:




Un suggerimento interessante da MrAddon

Un suggerimento interessante

Riporto con molto piacere un articolo del blog di MrAddon, che tratta un argomento molto interessante. Come sempre consiglio di dare una occhiata ai post di MrAddon, sempre interessanti ed importanti 🙂

Di cosa si tratta?

Si tratta della spiegazione di come possiamo creare una dashboard con informazioni condivise. Ho presentato una possibile soluzione in questo mio post, in cui presento un addon che consente di poter gestire delle board miste, ovvero con la possibilità di vedere delle issue presenti su di una istanza remota di JIRA.

MrAddon suggerisce un sistema molto più semplice e rapido per gestire questa situazione, e lo riporta in questo suo articolo, dove viene mostrato come gestire più gadget, uno locale ed uno remoto, e usarli per costruire una dashboard con tali infomazioni.

Si tratta di un sistema molto più semplice, ma presenta il vantaggio di essere più rapido e sopratutto…. standard. Infatti se non possiamo installare l’addon, possiamo comunque prendere le informazioni in modo da riportarcele e averle a disposizione.

 

Ringraziamento

Ringrazio MrAddon per il suggerimento. E’ sempre un piacere leggere il suo blog.




Vendite aziendali e fatturazione con i prodotti Atlassian

Gestione fatture e vendite aziendali

In questo post andremo a vedere come Jira, combinato con alcuni addon e prodotti della Atlassian, può aiutare nella gestione delle vendite aziendali, della fatturazione di una azienda, indipendentemente dalla quantità di fatture che si debbano gestire.

Fatture Elettroniche - Stop cartaceo dal 1° Gennaio 2019 — Ollsys Computer  Srl

In particolare cercheremo di analizzare ed evidenziare come, lavorando in perfetta sinergia, questi strumenti ci consentono di:

  • monitorare in ogni momento ogni singola parte del processo di gestione delle vendite;
  • monitorare il ciclo di vita di ogni fattura, verificandone lo stato;
  • eseguire delle interrogazioni mirate;
  • reportistica per avere una foto della situazione;
  • contattare velocemente i referenti di ogni singola area e segnalare tempestivamente di intervenire laddove necessario (nel nostro caso, JIRA ci permette di referenziare direttamentechi di dovere);
  • realizzare grafici ed avere delle Dashboard che permettano di avere la fotografia della situazione.

Di cosa abbiamo bisogno?

Risparmiare sulla spesa, 5 consigli per spendere meno al supermercato -  inNaturale

Gli strumenti di cui abbiamo bisogno sono pochi e semplici. Non richiedono grandi presentazioni dato che sono già stati trattati in questo blog:

Ogni singolo componente svolgerà una funzione ben specifica e, combinandole in maniera opportuna, si arriva ad avere la nostra soluzione.

Problem solving: cosa significa e come risolvere i problemi - Donna Moderna

Andiamo in profondità

Iniziamo ad analizzare ogni singola componente per capire che funzioni va a coprire e successivamente attacchiamo ogni singolo pezzo per arrivare alla soluzione che ci interessa.

Iniziamo da Jira CORE e Jira Service Desk. Si tratta del nostro core del motore. Sfrutteremo tutte le funzioni base di JIRA per andare a rappresentare le nostre entità. Forti di quanto abbiamo descritto per la gestione dell’Asset management, di cui abbiamo già parlato in passato. Possiamo infatti trasformare la issue di Jira in quasi qualsiasi cosa. Nel nostro caso andiamo a trasformare le issue in :

  • Fattura: Andiamo ad estendere i dati già presenti, aggiungendo tutte le informazioni che servono, aggiungendo i campi che servono per il calcolo e per descrivere le varie voci di una fattura. 
  • Vendite: Stesso discorso. Estendiamo i dati già presenti. 
  • In aggiunta ai punti precedenti, possiamo anche definire degli issue type, che ci possono maggiormente aiutare nel definire meglio le varie entità e tutti i campi custom che ci servono. Potrebbe essere (qui abbiamo la prima variante) aggiungiamo nuovi tipi di dati che ci possono aiutare, o in alternativa possiamo aggiungere Elements, per avere delle tabelle da allegare alle issue, al posto dei subtask  
  • Opportuni Workflow, dove andiamo a definire il flusso di lavoro delle varie entità. Possiamo definire flussi differenti anche per diverse tipologie di issue. Sfruttiamo questa possibilità 🙂

Questa è la prima parte 😛

Ma come ci può aiutare Jira Service Desk?

Le caratteristiche indicate in precedenza sono la base (e quindi ce le mette a disposizione JIRA Core), ma la domanda sorge spontanea: Come ci aiuta Jira Service Desk? Può essere utilizzato per gestire e tracciare (sopratutto questo) le richieste dei clienti: Serve la copia di una fattura? mandi una richiesta. Devi annullare una fattura? stesso discorso. Devi modificare (aumentare o diminuire) una vendita, perchè ti sei accorto di un errore? stesso discorso. In questo caso ti aiuta a tracciare tutte le richieste che sono di corredo, senza merdere alcuna traccia.

Ricordiamoci sempre della possibilità di collegare le issue tra di loro o di … generare delle issue collegate direttamente. Sfruttiamo tutte le possibilità che questi strumenti ci mettono a disposizione.

Atlas CRM

Questo addon completa le funzioni di Jira, per quanto riguarda la gestione dei dati del Cliente, dei contatti del cliente e delle vendite.

Abbiamo già avuto modo di verificare il funzionamento di questo addon, avendo anche la possibilità di poter testare delle nuove funzionalità ancora in BETA, ma riuscendo a carpire quali potenzialità quale addon mette a disposizione. Possiamo gestire un vero e porprio CRM , dove alla issue andiamo a indicare le informazioni del cliente.

Questo significa che, quando andiamo a utilizzare le issue per gestire le nostre fatture, oltre ai campi custom gli andiamo a inserire anche le informazioni del cliente e dei contatti del cliente. Siamo poi in grado di gestire e visualizzare successivamente tutte le issue/fatture/vendite che fanno capo ad un singolo cliente, come mostrato dalle seguenti figure:

XPorter for JIRA

Questo addon va a coprire altre necessità. Come abbiamo avuto modo di descrivere in questo articolo, Xporter ci permette di eseguire delle esportazioni mirate delle informazioni delle issue, permettendo anche la generazione di documenti.

Sono sicuro che vi si sono accese delle lampadine nella testa :-). Dato che possiamo generare dei documenti, possiamo usare questo addon per stampare:

  • le nostre fatture
  • le eventuali pro-forma (per i liberi professionisti)
  • documenti riassuntivi
  • elenchi di informazioni
  • esportazioni

Di conseguenza, non abbiamo più la necessità di dover richiamare programmi differenti. Usiamo sempre JIRA per stampare i nostri documenti, impostando il template direttamente su di un documento word e passandolo alle procedure di XPorter.

EazyBI

Sappiamo perfettamente che le statistiche sono molto importanti e che le estrazioni dati sono necessarie anche per prendere le decisioni del caso. A tale proposito, EazyBI ci aiuta tantissimo nella generazione di tali statistiche e dei risultati da analizzare.

Data la facilità di uso, possiamo definire e gestire le statistiche direttamente on the fly, e riportarle su Confluence molto molto facilmente 🙂

Confluence

Ultimo ma non ultimo, abbiamo Confluence, che ci permette di racchiudere la nostra documentazione, condividere le informazioni nell’ambito della rete aziendale …. e non solo 😀

Come descritto in altre situazioni, possiamo usare Confluence come repository unico della gestione dei documenti, creando:

  • Schede tecniche dei clienti, con l’elenco delle fatture/vendite/informazioni dei clienti
  • documentazione generale dell’azienda
  • Starter kit/istruzioni su come fare per
  • Tutto ciò che riguarda la documentazione.

Tutto qui?

Non solo. Possiamo anche sfruttare altri addon, descritti in questo blog, per costruire una soluzione unica che aiuti nello sharing delle pagine e delle informazioni. A tal proposito ci può tornare utile anche l’utilizzo di un altro addon: Comala Share it; che permette di poter condividere delle pagine Confluence anche a utenti NON confluence. Questo addon sarà poi descritto in altri post del blog.

Possiamo anche aggiungere la gestione delle versioni degli allegati su JIRA, questo per risolvere un vecchio problema che è sempre stato croce e delizia degli utilizzatori: se alleghiamo, ad una issue, due volte lo stesso file, lo troviamo due volte come se fosse un file differente. Attraverso questo addon, che stiamo analizzando, possiamo invece eseguire dei raggruppamenti tali da farci gestire meglio le versioni dei documenti. Basta solo pensare alle versioni delle fatture, preventivi ed altri documenti.

Conclusione

Chiudiamo qui questa analisi. Abbiamo mostrato come, componendo questi prodotti ed addon, facendo finta d avere a disposizione dei pezzi LEGO, possiamo comporre delle soluzioni non indifferenti. Sto in questo momento testando questa soluzione su me stesso, in modo da avere una conferma/smentita della affidabilità e utilizzabilità dei prodotti e spero a breve di pubblicare i risultati del lavoro.




Come nascondere elementi su Confluence

Tips & Tricks

In questo post riportiamo alcuni consigli per …. nascondere gli elementi su Confluence, sia in visualizzazione che in stampa.

 

Cosa abbiamo a disposizione?

Il primo suggerimento che riportiamo è quello presente al seguente link, dove viene spiegato come nascondere degli elementi, andando a giocare con CSS ed affini.

Per attuare ciò, occorre selezionare, nella configurazione degli space, la sezione Look and Feel, Custom HTML.

dove possiamo inserire il nostro codice CSS per limitare la visualizzazione (il link citato fornisce diverse indicazioni sugli oggetti che possiamo nascondere).

Se vogliamo invece avere queste opzioni limitate ad un solo spazio, possiamo agire nella stessa posizione ma relativa allo space.

Che alternative abbiamo?

Possiamo definire una macro (solo per la versione server, su cloud questa funzione è stata disabilitata), come descritto in questo documento, che spiega come realizzare il tutto. La macro può essere utilizzata ovunque, rendendo implementazione molto più semplice: basta semplicemente inserire il testo che non si vuole stap

In questo modo visualizziamo a video, ma non stampiamo 🙂

Che altro possiamo usare?

Possiamo anche utilizzare HideElements for Confluence della tedesca Scandio GmbH che mette a disposizione una serie di macro per …. nascondere elementi di Confluence:

Conclusioni

Abbiamo visionato diverse possibilità per poter nascondere e/o non stampare degli elementi di Confluence. Le possibilità di utilizzo sono molteplici 🙂 e sono sicuro che non mancheranno occasioni per applicare questo barbatrucco :-D.

Reference

Maggiori informazioni sono reperibili, in inglese, ai seguenti link:

  • https://confluence.atlassian.com/confkb/how-to-hide-elements-in-confluence-using-css-or-javascript-313458894.html
  • https://confluence.atlassian.com/conf53/noprint-example-of-a-user-macro-411108920.html
  • https://confluence.atlassian.com/conf53/advanced-pdf-export-customisations-411108705.html#AdvancedPDFExportCustomisations-noprint
  • https://marketplace.atlassian.com/plugins/de.scandio.confluence.plugins.hideelements-macro/server/overview



Aggiungere dei partecipanti ad una issue Service Desk… automaticamente

Altro Tips su JIRA Service Desk

In questo post andremo ad analizzare un semplice suggerimento per aggiungere dei partecipanti ad una issue di Service Desk…. automaticamente, non appena viene creata.

 

Di cosa abbiamo bisogno?

Per realizzare questa funzione, ci baseremo su di un addon che abbiamo già visto: Automation for JIRA (in questo caso andiamo ad usare la versione light, che ci è sufficiente per il nostro lavoro).

 

Quello che andremo a realizzare è una azione specifica, attraverso questo addon, per implementare l’azione che ci interessa. Andiamo ad analizzare i vari passi:

Prima cosa da fare è selezioanare, nel progetto Service Desk che ci interessa, la sezione Project Automation. Da li, come mostrato in figura:

andiamo quindi a generare una nuova regola, usando il template blank

quindi seguiamo la autocomposizione e impostiamo le varie parti della regola

Le condizioni che andiamo ad impostare sono: Su issue creata, come mostrata in figura:

andiamo ad eseguire l’editing della issue, andando a modificare il campo che ci interessa (ed in questo caso ci torna utile il seguente suggerimento, che abbiamo esaminato in passato)

Nella regola andiamo ad inserire il JSON da cui impostiamo il nuovo valore del campo.

Nel nostro caso, il JSON da usare è il seguente:

{
 "update": {
 "labels": [
 {
 "add": "triaged"
 },
 {
 "remove": "blocker"
 }
 ],
 "comment": [
 {
 "add": {
 "body": "Thanks for raising {{issue.key}}."
 }
 }
 ]
 },
 "fields": {
 "customfield_XXXXX": [{ "name":"utente1" }, { "name":"utente2" }, { "name":"utente3" }]
 }
}

e ci permette di eseguire l’operazione richiesta.

 

Alcune avvertenze

Tenete conto che la versione lite dell’addon citato consente di far eseguire solo un numero limitato di operazioni. Se superiamo tale limite, occorre acquistare l’addon non lite.

 

Conclusioni

Abbiamo visto un esempio molto semplice, che ci mostra come possiamo automatizzare delle operazioni. Possiamo però sfruttare il principio per realizzare anche operazioni molto più complesse.

 

Reference

Potete trovare altre informazioni anche ai seguenti link:

  • https://codebarrel.atlassian.net/wiki/display/AUTO4J/Advanced+fields
  • https://confluence.atlassian.com/jirakb/how-to-automatically-add-request-participants-when-creating-an-issue-777026955.html



Usiamo ScriptRunner – Vediamo alcuni esempi

Un semplice esempio

In questo post andremo ad esaminare un esempio di come possiamo sfruttare Scriptrunner per JIRA, già presentato in questo blog, per realizzare delle funzioni opportune.

 

Ringraziamenti

Un grazie al lavoro che svolge MrAddons con il suo blog, che ha ispirato questo articolo, in cui spiega come sfruttare la potenza di questo ed altri addon. 

Di cosa parliamo oggi?

Voglio citare un semplice esempio di come possiamo automatizzare alcune azioni che normalmente ci prenderebbero delle giornate. Vediamo come chiudere un task, in automatico, che è stato collegato con un altro come linked issue.

Scenario

Abbiamo un task in cui sono presenti delle issue collegate. Vogliamo che, nell’istante in cui andiamo a chiudere la issue principale, le issue collegate siano a loro volta chiuse.

Come possiamo ottenere questo risultato che, normalmente, le funzioni standard o out-of-the-box di JIRA non ci mettono a disposizione? Risposta: Con Scriptrunner. vediamo come.

 

Pochi semplici passi

Quello che dobbiamo fare e andare ad agire a livello di Workflow, in particolare a livello di Postfunction di una transazione del Workflow (nel nostro caso si tratta di un workflow usato in un progetto di esempio).

e li andiamo a generare la nostra Postfunction personalizzata, come script:

dove inseriamo questa azione. Il concetto è di sfruttare groovy e di andare a dire a JIRA: Quando esegui questa operazione, se si tratta di una issue che presenta delle issue collegate, allora … riesegui la stessa transazione per chiuderla.

Il codice da inserire è il seguente:

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor

def issueLinkManager = ComponentAccessor.getIssueLinkManager()
import org.apache.log4j.Category
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.comments.CommentManager;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.MutableIssue
def Category log = Category.getInstance(“com.onresolve.jira.groovy.PostFunction”)
log.setLevel(org.apache.log4j.Level.DEBUG)
log.debug “debug statements”
String currentUser = ((WorkflowContext) transientVars.get(“context”)).getCaller();
WorkflowTransitionUtil workflowTransitionUtil = ( WorkflowTransitionUtil ) JiraUtils.loadComponent( WorkflowTransitionUtilImpl.class );
log.debug “Original: ${issue.getId()}, ${issue.getKey()}. DETECTED ” + issue.getStatusObject().getName();

List<IssueLink> allInIssueLink = issueLinkManager.getOutwardLinks(issue.getId());
for (Iterator<IssueLink> inIterator = allInIssueLink.iterator(); inIterator.hasNext();) {
IssueLink issueLink = (IssueLink) inIterator.next();
def linkedIssue = issueLink.getDestinationObject();
log.debug “linked: ${linkedIssue.getId()}, ${linkedIssue.getKey()}. DETECTED ” + linkedIssue.getStatusObject().getName();
if (linkedIssue.getStatusObject().getName().equals(“To Do”)) { // STATO della issue collegata
log.debug “linked Content: ${linkedIssue.getId()}, ${linkedIssue.getKey()}.”

//We can transition the parent ticket
log.debug “start transition”

workflowTransitionUtil.setIssue((MutableIssue) linkedIssue);
workflowTransitionUtil.setUserkey(currentUser);
workflowTransitionUtil.setAction (21); //Transition ID — TRANSAZIONE CHE VIENE ESEGUITA
workflowTransitionUtil.validate();
workflowTransitionUtil.progress();

log.debug “end transition”
}

}

Nel seguente GIF, viene mostrato quello che succede quando attiviamo questa postfunction:

Conclusione

Un piccolo passo e poco poco codice per un grande risultato :-). Nei prossimi post cercheremo di esaminare altri script e scopriremo come sfruttare Scriptrunner.