Metadata per Confluence – Prova su strada

Prova su strada

In questo post andiamo ad eseguire la prova su strada dell’addon della Communardo. Cerchiamo di capire vantaggi, limiti e possibilità di utilizzo.

Installiamo

Procediamo sempre con ordine. Come prima cosa installiamo l’addon. Una volta trovato, selezioniamo free trial per poter procedere alla prima installazione sul nostro sistema. Una volta selezionato, si procede con la fase di installazione.

Meta-02-01

Attendiamo che siano eseguiti tutti i passi necessari…

Meta-02-02

Al termine della installazione, qualora non siamo loggati, viene richiesto di accedere al proprio account Atlassian, per poter generare la licenza TRIAL

Meta-02-03

L’addon stesso si occupa di connettersi per poter ottenere la licenza

Meta-02-04

Terminata questa fase l’addon è disponibile

Meta-02-05

Possiamo quindi procedere con la configurazione. Nella scheda dell’addon, troviamo tutte le indicazioni che ci aiutano ad iniziare a lavorare, come mostrato nella figura seguente:

Meta-02-06

Prova

Iniziamo a testare il nostro nuovo addon. Seguiamo le indicazioni, presenti nella precedente immagine, che ci forniscono un primo aiuto. Partiamo dalla configurazione generale, presente nella sezione di amministrazione, dove l’addon mette a disposizione due link, sulla barra sinistra dei menù

Meta-02-07

Partiamo con il definire i primi metadati attraverso la funzionalità Metadata fields. Una volta selezionato, ci accorgiamo che, come default, l’addon mette a disposizione dei metadati, come mostrato in figura.

Meta-02-08

Possiamo aggiungere i nostri metadati personalizzati come vogliamo :-). Selezionamo il tasto Add metadata field, per procedere. L’addon propone la seguente schermata:

Meta-02-09

Proviamo, in questa fase di test, ad aggiungere alcune informazioni di prova, quali:

  • Progetto
  • Ambito di lavoro

Definiamo quindi il Metadata set di appartenenza.

Meta-02-13

Dopo di che, lavoriamo su di uno space di test, che con grande fantasia è chiamato Communardo-test, e verifichiamo come possiamo accedere a tali informazioni e come ci possono essere utili.

La prima cosa che notiamo è la presenza di una icona, in alto a destra sulla pagina:

Meta-02-10

Se lo selezioniamo, accediamo alla gestione dei metadati, come mostrato nella figura successiva. Con nostra sorpresa, non riusciamo ad accedere subito a tali informazioni.

Meta-02-11

Dobbiamo prima procedere con la configurazione sulle opzioni dello space, prima di poter procedere. Andiamo nella sezione dei Medatada set e selezioniamo l’ultimo inserito:

Meta-02-14

Salviamo ed il gioco è fatto. Adesso i metadati sono pronti ad essere usati. Se aggiungiamo l’apposita macro nella pagina di prova e andiamo a visualizzarla, questo è il risultato che otteniamo.

Meta-02-15

Per inserire i valori semplicemente andiamo a selezionare il tasto in alto a destra, già evidenziato nelle immagini precedenti e vediamo quanto segue:

Meta-02-16

Inseriamo i dati e selezioniamo il tasto Salva. L’immagine che segue mostra il risultato.

Meta-02-17

Si segnala inoltre che l’addon consente di definire, oltre che metadati globali, anche metadati ristretti solo a determinati Space. In questo modo si ha la possibilità di poter definire situazioni ad hoc per determinate situazioni.

Meta-02-12

Conclusioni

L’addon è molto interessante: L’idea di disporre di informazioni di tale genere, aiuta enormemente l’utilizzatore ad una classificazione della pagina ed estende, secondo il mio personale giudizio, la funzionalità delle Page properties.

Devo segnalare ancora qualche piccola anomalia/suggerimento, che dettaglio di seguito.

  • Se dalle opzioni dello Space andiamo a modificare un metadato globale, si viene poi rediretti nella sezione dei metadati globali. Se accedo dalle opzioni dello space, sarebbe il caso di ritornare su tale sezione.
  • Potrebbe essere utile semplificare la procedura per definire i metadati. L’utente generico potrebbe avere dei problemi nel gestire questa procedura.

Si tratta di piccole cose, ma sono sicuro che la Communardo, con la sua esperienza e con le sue capacità, ci sorprenderà di sicuro.

Reference

Maggiori informazioni sono reperibili alla pagina del marketplace.




Appfusions – Userprofile prova su strada #2

Userprofile – Alternative #2

Proseguiamo quanto riportato sul post precedentemente pubblicato, andando a saggiare questo addon 🙂

Dove eravamo rimasti?

Eravamo arrivati al punto in cui si doveva inserire la licenza

app-02-07

Una volta inserita (nel mio caso ho richiesto una licenza di valutazione di 30 giorni), questo è il risultato:

app-03-01

Possiamo iniziare ad usare l’addon 🙂

Azione

Passiamo alla azione. Come prima azione, creiamo una pagina di prova su di un apposito spazio. Quindi passiamo alla azione utilizzando la prima macro: Lookup User

app-03-02

Se andiamo a consultare le proprietà, abbiamo una prima sorpresa: Non abbiamo proprietà della macro. Queste sono disponibili solo nella sezione di amministrazione degli addon, nella sezione dedicata, come mostrato in figura:

app-03-03

La prima cosa che notiamo, guardando le configurazioni, è il dover subito capire quale gruppo di utenti può visualizzare le informazioni. Nel nostro caso, dato che l’ambiente di test non dispone di un numero molto alto di utenti, ho autorizzato il gruppo dei confluence-administrator. In questo modo posso subito visualizzare il risultato.

Altra piacevole soluzione, è quella di poter visualizzare i dati servendomi di un LDAP di test che l’addon mette a disposizione. In alternativa, occorre installarlo e poi configurarlo nella sezione delle User-Directory.

Il risultato della macro presente nella pagina è il seguente:

app-03-04

dove possiamo eseguire la ricerca. Il risultato viene così visualizzato (ho inserito una GIF per meglio rendere l’idea):

app-03-05

Il risultato è sicuramente notevole 🙂

Passiamo ad esaminare la seconda macro. Questa necessita di un LDAP . Per ovviare a questa mancanza, ho installato OpenLdap, sullo stesso server di prova. In questo modo dispongo di un sistema di test per poter eseguire un test effettivo.

Conclusioni

Terminiamo qui questa seconda parte del post. Nel prossimo post andremo a testare la seconda macro e quindi daremo il risultato finale.




Communardo – Metadata per Confluence

Metadati sullo Space

In questo post andremo a vedere questo nuovo addon della Communardo, che consente di poter aggiungere dei metadati nelle pagine di uno space, in maniera molto semplice, standardizzando il tutto e semplificando il lavoro degli utenti.

Andiamo in dettaglio

L’addon consente di poter impostare i metadati in maniera semplice, fornendo una unica fonte su cui caricare le informazioni a livello di space.

Consente, come si può vedere dalla precedente immagine, di caricare sia singoli metadati, che insiemi di campi di metadati, direttamente sotto le configurazioni dello Space

E’ anche possibile eseguire l’editazione di un singolo metadato, direttamente dalla pagina.

E’ quindi possibile, una volta impostati i metadati, arrivare a visualizzare le informazioni in maniera da sfruttarli

Conclusioni

Da una prima analisi, questo addon potenzia notevolmente le funzionalità di Confluence, aggiungendo la possibilità di poter aggiungere delle ulteriori informazioni sulle pagine. Nei prossimi post andremo ad eseguire la solita prova s strada, verificando di persona come funziona il tutto e saggiandone, come sempre, i limiti.




Appfusions – Userprofile prova su strada #1

Userprofile – Alternative

In questo post andremo a vedere questa alternativa e cercheremo di capire come si comporta l’addon della AppFusions.

Dividiamo questo post in due parti. La prima sarà dedicata alla gestione della installazione e di come richiedere la licenza. Essendo un Addon fuori marketplace, si richiede una cura particolare.

Installiamo il prodotto

Per installare il prodotto, occorre richiedere la licenza direttamente dal produttore. L’addon non è disponibile sul Marketplace della Atlassian. Basta collegarsi al sito della AppFusions e abbiamo a disposizione i vari prodotti :-).7

app-02-00

Selezioniamo, in prima battuta, il bottone Download e procediamo con la scelta della versione del prodotto

app-02-01

Una volta scelta la versione, procediamo con il download. Quindi, per la richiesta della licenza, come visto nella precedente immagine, abbiamo a disposizione la possibilità di richiedere la licenza di valutazione. Procediamo 🙂

app-02-02

Per l’installazione, basta semplicemente posizionarsi nella sezione di amministrazione, dedicata alla gestione degli addon, come mostrato in figura:

app-02-03

Selezioniamo quindi Upload Add-on, per procedere con il caricamento del file JAR che abbiamo scaricato prima:

app-02-04

Selezionamo dove andare a prendere il JAR (possiamo leggerlo dal nostro disco locale, dove lo abbiamo scaricato, oppure possiamo andarlo a leggere direttamente dalla URL).

app-02-05

L’installazione viene eseguita, come già mostrato in altri post:

app-02-06

Una volta terminata l’installazione, possiamo procedere con la configurazione. Il primo passo è fornire la licenza.

app-02-07

Inseriamo la licenza e procediamo con il nostro test 🙂

Conclusioni

Terminiamo questa prima parte dedicata a questo addon. Nel prossimo post, andremo ad eseguire il test su strada 🙂

 

 




Come usare Confluence e JIRA per …. #1

Come usare Confluence e JIRA per ….

In questo post inauguriamo una piccola innovazione. Cerchiamo di dare degli spunti su come è possibile usare questi meravigliosi strumenti, anche per compiti NON IT 🙂

Cosa possiamo fare?

Un esempio che mi viene in mente è quello di poter usare Confluence e JIRA per poter …. censire le offerte di lavoro, arrivando ad avere un controllo completo di ciò che succede in azienda. Come possiamo arrivare a gestire le nostre proposte/offerte di lavoro?

Possiamo usare JIRA per:

  • usare le issue come se fossero delle offerte (basandosi sull’esempio della realizzazione di un Asset manager, dove le issue sono usate per censire gli asset di una azienda;
  • usare il JIRA Workflow per poter gestire i passaggi di stato della offerta, fino a gestire l’intero ciclo di vita del lavoro proposto.
  • Usare JIRA Agile per gestire i passaggi di stato. Sfruttiamo la possibilità di poter visualizzare in un sol colpo lo stato di tutte le commesse e sfruttare i tool che JIRA Agile mette a disposizione

Possiamo usare Confluence per:

  • Documentare l’offerta di lavoro, impostando dei template standard, dove riportare tutte le informazioni dell’offerta, da quando è stata proposta al cliente fino alla sua conclusione 
  • Impostare tutte le informazioni documentali, quali documenti inviati, documenti ricevuti dal cliente e segnalazioni varie. Confluence viene usato più per tracciare tutti i documenti ;

Conclusioni

Questo è solo una idea di come poter implementare una possibile soluzione, sfruttando le funzionalità che i due prodotti mettono a disposizione. Infatti è possibile realizzare delle soluzioni non indifferenti :-).

Nei prossimi post cercheremo di dettagliare meglio questa soluzione, arrivando a fornire pro e contro della soluzione e verificando fino a che punto possiamo spingerci con questi strumenti 😀

 




User Macro – Lorem Ipsum: Facciamo un nostro esempio.

Un altro esempio

In questo post, proseguiamo la serie di articoli dedicati alla creazione di User Macro. Vedremo un esempio di come creare una semplice macro che sostituisca la macro ufficiale Lorem Ipsum.

 

Andiamo sul pratico

Iniziamo con il definire la nostra macro di prova. Come prima cosa andiamo a definire che cosa deve fare la nostra macro 🙂 . Non è cosa da poco.

Vogliamo sostituire la macro standard Lorem Ipsum di Confluence. Vogliamo implementarne una nostra che restituisca un nostro risultato personalizzato. Nel nostro caso abbiamo bisogno di ripetere una scritta solo fino a 5 volte massimo.

Il nostro obbiettivo è quello di avere delle sezioni si Lorem Ipsum molto ridotte come testo.

Il nostro script di macro

Definiamo il nostro script come segue:

Come parametri principali, fate riferimento alla seguente immagine:

usermacro-04-01

Il codice della macro è il seguente

## Macro title: Lorem Ipsum
## Macro has a body: N
## Body processing: Genera un testo a misura del Lorem Ipsum
## Output: Testo indicato
##
## Developed by: ArtigianoDelSoftware di Fabio Genovese
## Date created: 05/09/2015
## Installed by: -
## Parametri
## @param numpar:title=Number of paragraph|type=enum|enumValues=1,2,3,4,5|required=true|desc=Number of paragraph
## Corpo della macro
#set ( $Testo = "lorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, sed quia non numquam eius" )
#set ( $Testodef = "")
#set ( $limit = $paramnumpar )
#if ( $paramnumpar == 1 ) 
 #set ( $Testodef = "$Testo" )
#elseif ( $paramnumpar == 2 )
 #set ( $Testodef = "$Testo$Testo" )
#elseif ( $paramnumpar == 3 )
 #set ( $Testodef = "$Testo$Testo$Testo" )
#elseif ( $paramnumpar == 4 )
 #set ( $Testodef = "$Testo$Testo$Testo$Testo" )
#else
 #set ( $Testodef = "$Testo$Testo$Testo$Testo$Testo" )
#end
## Visualizzazione
<html>
<body>
$Testodef
</body>
<html>

Identifichiamo le seguenti sezioni:

  • Macro title – Si tratta di un commento da inserire in cima alla macro
  • Parametri – dichiarazione dei parametri
  • Corpo della macro – Codice della macro
  • Visualizzazione – Parte del corpo della macro che visualizza i risultati

Macro Title

Si tratta del mero commento alla procedura. Lo consiglio sempre. Inseritelo. Non occupa alcuno spazio ed è utile quando riprendete in mano la macro per farne manutenzione

## Parametri
## @param numpar:title=Number of paragraph|type=enum|enumValues=1,2,3,4,5|required=true|desc=Number of paragraph

Parametri

Dichiarazione dei parametri che richiede la macro. Parte molto importante. Nel nostro caso abbiamo inserito una selezione automatica in cui l’utente può selezionare un valore da 1 a 5. Un semplice enumeratore.

## Parametri
## @param numpar:title=Number of paragraph|type=enum|enumValues=1,2,3,4,5|required=true|desc=Number of paragraph

Corpo della macro

Di seguito il codice, scritto in sintassi Velocity, che realizza il tutto.

## Corpo della macro
#set ( $Testo = "lorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, sed quia non numquam eius" )
#set ( $Testodef = "")
#set ( $limit = $paramnumpar )
#if ( $paramnumpar == 1 ) 
 #set ( $Testodef = "$Testo" )
#elseif ( $paramnumpar == 2 )
 #set ( $Testodef = "$Testo$Testo" )
#elseif ( $paramnumpar == 3 )
 #set ( $Testodef = "$Testo$Testo$Testo" )
#elseif ( $paramnumpar == 4 )
 #set ( $Testodef = "$Testo$Testo$Testo$Testo" )
#else
 #set ( $Testodef = "$Testo$Testo$Testo$Testo$Testo" )
#end

Visualizzazione

La parte che si occupa della visualizzazione è molto semplice e non richiede alcun commento.

## Visualizzazione
<html>
<body>
$Testodef
</body>
<html>

Risultati?

I risultati sono i seguenti. Alla chiamata vediamo che Confluence mostra anche la nostra Macro (la prima).

usermacro-04-02

Una volta selezionata la macro, viene attivata l’autocomposizione

usermacro-04-03

Una volta impostato la macro viene visualizzata sulla pagina

 

usermacro-04-04

Il risultato finale è il seguente:

usermacro-04-05

 

Conclusioni

Abbiamo visto come si può realizzare una semplice macro. Nei prossimi post andremo ad esaminare altri esempi.




User Macro – Un semplice esempio di utilizzo

User Macro

In questo post andremo ad consultare un articolo presente in questo blog, che ritengo molto interessante. Lo esamineremo e cercheremo di approfondire l’argomento, in quanto lo ritengo un ottimo esempio didattico.

Andiamo in dettaglio

L’articolo del blog spiega come realizzare una alternativa alla macro Space Detail Macrousando le macro per ottenere un risultato migliore 🙂

In particolare il risultato che offre con la sua macro è il seguente:

L’ho scelto perché si tratta di una macro molto semplice e, dal punto di vista didattico, la macro risulta realizzata molto bene.

Vediamo il codice

La configurazione preliminare della macro è molto semplice. La seguente immagine la riassume:

Il codice è molto semplice. Lo riporto di seguito nella sua interessa e successivamente lo andremo ad esaminare pezzo per pezzo, in modo da capire come viene eseguita ogni singola operazione.

## Macro title: Space Meta Data
## Macro has a body: Y or N (N)
## Body processing: Selected body processing option
## Output: Selected output option
##
## Developed by: Andrew Frayling
## Date created: 03/05/2012
## Installed by: <your name>

## Macro to display information such as number of pages, number of blog posts, attachment size, etc. about a Space. 

## @noparams

## Get space details
#set ( $spaceName = $space.getName() )
#set ( $spaceKey = $space.getKey() )
#set ( $spaceHome = $space.getHomePage() )
#set ( $spaceCreator = $space.getCreatorName() )
#set ( $spaceCreationDate = $space.getCreationDate() )
#set ( $spaceDescription = $space.getDescription() )
#set ( $pageCount = $spaceManager.findPageTotal($space) )
#set ( $blogCount = $spaceManager.getNumberOfBlogPosts($space) )

## Get all pages in the current Space
#set ( $allPagesInSpace = $pageManager.getPages($space, true) )

## Reset total attachment file size
#set ( $totalAttachmentFileSizeForSpace = 0 )

## Reset total number of attachments
#set ( $totalAttachmentCount = 0 )

## Loop through all pages in the current Space
#foreach ($page in $allPagesInSpace)
  ## reset the attachment count for each page
  #set ( $pageAttachmentCount = 0 )
  ## reset the attachment file size total for each page
  #set ( $totalFileSizePerPage = 0 )
  ## get the attachments for each page
  #set ( $allAttachments = $page.getAttachments() )
  ## Loop through each attachment
  #foreach ($attachment in $allAttachments)
    ## Increment the attachment count for the page
    #set ( $pageAttachmentCount = $pageAttachmentCount + 1 )
    ## Sum the size of the attachments on the page
    #set ( $totalFileSizePerPage = $totalFileSizePerPage + $attachment.getFileSize() )
  #end
  ## End looping through attachments
  ## Increment total attachment count for the current Space
  #set ( $totalAttachmentCount = $totalAttachmentCount + $pageAttachmentCount )
  ## Sum the total size of attachments for the current Space
  #set ( $totalAttachmentFileSizeForSpace = $totalAttachmentFileSizeForSpace + $totalFileSizePerPage )
#end
## End looping through pages

## Convert attachment size to MBs
#set ( $attachmentSizeMb = ($totalAttachmentFileSizeForSpace / 1024.00) / 1024.00 )

## Display Space Details
<table class="confluenceTable">
  <tbody>
    <tr>
      <th class="confluenceTh">Name</th>
      <td class="confluenceTd">$spaceName</td>
    </tr>
    <tr>
      <th class="confluenceTh">Key</th>
      <td class="confluenceTd">$spaceKey</td>
    </tr>
    <tr>
      <th class="confluenceTh">Description</th>
      <td class="confluenceTd">$spaceDescription.getBodyAsString()</td>
    </tr>
    <tr>
      <th class="confluenceTh">Home Page</th>
      <td class="confluenceTd">#contentLink2($spaceHome true false)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Created By</th>
      <td class="confluenceTd">#usernameLink($spaceCreator) ($action.dateFormatter.formatDateTime($spaceCreationDate))</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Pages</th>
      <td class="confluenceTd">$pageCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Blog Posts</th>
      <td class="confluenceTd">$blogCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Attachments</th>
      <td class="confluenceTd">$totalAttachmentCount (including all versions)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Total Size of Attachments</th>
      <td class="confluenceTd">$attachmentSizeMb MB</td>
    </tr>
  </tbody>
</table>

Distinguiamo le seguenti sezioni nella macro:

  • Testata
  • Lettura parametri dello space
  • Lettura della dimensione dei vari allegati
  • Visualizzazione dati ottenuti

Andiamo ad esaminarle in dettaglio.

## Macro title: Space Meta Data 
## Macro has a body: Y or N (N) 
## Body processing: Selected body processing option 
## Output: Selected output option 
## 
## Developed by: Andrew Frayling 
## Date created: 03/05/2012 
## Installed by: <your name> 
## Macro to display information such as number of pages, number of blog posts, attachment size, etc. about a Space. ## @noparams

L’Intestazione della macro è quello che avevo già descritto nel mio primo post. In questo caso, l’autore ha realizzato una intestazione molto ben fatta, chiara, semplice e di rapido effetto.

Spiega subito le caratteristiche della macro in poche righe.

## Get space details
#set ( $spaceName = $space.getName() )
#set ( $spaceKey = $space.getKey() )
#set ( $spaceHome = $space.getHomePage() )
#set ( $spaceCreator = $space.getCreatorName() )
#set ( $spaceCreationDate = $space.getCreationDate() )
#set ( $spaceDescription = $space.getDescription() )
#set ( $pageCount = $spaceManager.findPageTotal($space) )
#set ( $blogCount = $spaceManager.getNumberOfBlogPosts($space) )

## Get all pages in the current Space
#set ( $allPagesInSpace = $pageManager.getPages($space, true) )

## Reset total attachment file size
#set ( $totalAttachmentFileSizeForSpace = 0 )

In questa sezione, invece, va a leggere tutte le informazioni dello Space, impostando tutte le variabili con le informazioni che si vogliono visualizzare nella macro. Notiamo le variabili, definite con la sintassi che è stata già spiegata nei precedenti post.

## Reset total number of attachments 
#set ( $totalAttachmentCount = 0 )

## Loop through all pages in the current Space
#foreach ($page in $allPagesInSpace)
  ## reset the attachment count for each page
  #set ( $pageAttachmentCount = 0 )
  ## reset the attachment file size total for each page
  #set ( $totalFileSizePerPage = 0 )
  ## get the attachments for each page
  #set ( $allAttachments = $page.getAttachments() )
  ## Loop through each attachment
  #foreach ($attachment in $allAttachments)
    ## Increment the attachment count for the page
    #set ( $pageAttachmentCount = $pageAttachmentCount + 1 )
    ## Sum the size of the attachments on the page
    #set ( $totalFileSizePerPage = $totalFileSizePerPage + $attachment.getFileSize() )
  #end
  ## End looping through attachments
  ## Increment total attachment count for the current Space
  #set ( $totalAttachmentCount = $totalAttachmentCount + $pageAttachmentCount )
  ## Sum the total size of attachments for the current Space
  #set ( $totalAttachmentFileSizeForSpace = $totalAttachmentFileSizeForSpace + $totalFileSizePerPage )
#end
## End looping through pages

## Convert attachment size to MBs
#set ( $attachmentSizeMb = ($totalAttachmentFileSizeForSpace / 1024.00) / 1024.00 )

In questa sezione del codice, viene eseguito un esempio di ciclo sulle varie pagine, per determinare la dimensione dei vari allegati alle pagine dello Space. Questo è sicuramente un ottimo esempio che mostra come sono reperite le informazioni usando il codice delle macro.

In aggiunta vediamo come eseguire il reperimento dei dati, quali le pagine presenti dentro uno space, e degli allegati. La sintassi non è affatto difficile e consente di poter lavorare agevolmente.

## Display Space Details
<table class="confluenceTable">
  <tbody>
    <tr>
      <th class="confluenceTh">Name</th>
      <td class="confluenceTd">$spaceName</td>
    </tr>
    <tr>
      <th class="confluenceTh">Key</th>
      <td class="confluenceTd">$spaceKey</td>
    </tr>
    <tr>
      <th class="confluenceTh">Description</th>
      <td class="confluenceTd">$spaceDescription.getBodyAsString()</td>
    </tr>
    <tr>
      <th class="confluenceTh">Home Page</th>
      <td class="confluenceTd">#contentLink2($spaceHome true false)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Created By</th>
      <td class="confluenceTd">#usernameLink($spaceCreator) ($action.dateFormatter.formatDateTime($spaceCreationDate))</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Pages</th>
      <td class="confluenceTd">$pageCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Blog Posts</th>
      <td class="confluenceTd">$blogCount</td>
    </tr>
    <tr>
      <th class="confluenceTh">Number of Attachments</th>
      <td class="confluenceTd">$totalAttachmentCount (including all versions)</td>
    </tr>
    <tr>
      <th class="confluenceTh">Total Size of Attachments</th>
      <td class="confluenceTd">$attachmentSizeMb MB</td>
    </tr>
  </tbody>
</table>

Questa è la parte che si occupa della visualizzazione. Notiamo che si tratta di HTML, che sfrutta le classi e le proprietà di Confluence. Vediamo che tutti i risultati delle precedenti elaborazioni sono inserite in questa tabella, in maniera molto rapida.

Conclusioni

Abbiamo analizzato un esempio di macro, molto semplice ma nello stesso tempo, fondamentale. Con esso è possibile comprendere e capire meglio come si può realizzare una macro, come possiamo sfruttare i vari punti del linguaggio per realizzare le funzionalità di cui si abbisogna senza, in questo caso, dover installare nulla :-). Scusate se è poco 😀

Ringraziamenti

Un ringraziamento particolare va all’autore del post blog. L’articolo è ben fatto e, anche se in inglese, è molto chiaro. I complimenti all’autore sono d’obbligo. 🙂

 

 




Una piccola novità su Confluence

Una piccola novità….

In questo post andremo a riportare una curiosità, di cui mi sono accorto in questi giorni. Seguirà un post con opportuni approfondimenti 🙂

 

Di cosa si tratta?

Andiamo al dunque. Lavorando tutti i giorni con la versione Cloud di Confluence e JIRA, quasi non faccio caso alle ultime novità. Ma questa volta ho notato una piccola …. variante 😀

novita01

Nella fase di creazione di nuovi contenuti, è stata introdotta una variante. Il tasto Create è stato modificato in modo da semplificare il lavoro dell’operatore. Questo significa che se vogliamo creare una singola pagina, basta selezionare il tasto. Se invece abbiamo la necessità di creare una pagina da Template, allora quello che possiamo fare  selezionare il tasto con i tre punti, posto a fianco del tasto Create .

Conclusioni

Si tratta di un piccolo miglioramento, ma nel lavoro di un operatore, si tratta di una variante molto interessante. Se ci concentriamo sul lavoro di un operatore generico, questo lo aiuta notevolmente nell’aumentare la produttività e nel semplificarsi la vita. Non è cosa da poco 🙂




Addon by AppFusions – Userprofile

Approfondiamo l’argomento

In questo post andremo ad approfondire l’argomento dello UserProfile, affrontato in questo post. Vediamo una ulteriore alternativa disponibile 🙂

Enterprise Directory & Org Chart for Atlassian Confluence

Si tratta di un addon, realizzato dalla AppFusions, che permette di disporre di una buona integrazione con Active Directory LDAP e mette a disposizione un sistema per poter navigare e rappresentare in maniera efficace la User directory.

L’interfaccia per la ricerca è molto semplice e diretta e consente, agli utenti, di poter cercare in maniera agevole tra i dati della People Directory.

Altra caratteristica importante è quella di consentire una rappresentazione gerarchica degli utenti. Questa è una funzionalità non indifferente: Avremmo a disposizione sempre la possibilità di poter creare il nostro organigramma. Al momento solo in questo post abbiamo visto come poter generare un diagramma simile.

Conclusioni

Abbiamo visto una ulteriore alternativa alla UserProfile di Confluence. Abbiamo visto che, in questo sistema, non esiste una sola alternativa alla funzionalità standard, ma abbiamo un ampio ventaglio di alternative, che possiamo scegliere in base a quali sono le nostre esigenze. Prova su strada seguirà nei prossimi post 🙂

 

Reference

Maggiori dettagli dell’addon sono reperibili qui.

 

Ringraziamenti

Mi permetto d ringraziare David Simpson per la segnalazione inviatami, che aiuta tutti noi a capire meglio come orientarci in questo grande insieme di addons per Confluence.




Pillole di esperienza su Confluence – Come usare un Wiki al meglio

Pillole di esperienza

In questo post iniziamo a trattare un argomento più complesso, ma anche molto più interessante :-), in quanto iniziamo a capire meglio, oltre che ad usare questo strumento dal punto di vista tecnico, come farlo rendere al meglio. Iniziamo ad introdurre alcuni concetti che stanno alla base dell’uso di un Wiki e che aiutano a migliorare la vita. 😀

 

Alcune precisazioni

Prima di affrontare questo argomento, occorre fare alcune precisazioni. L’argomento trattato può essere facilmente esteso a qualsiasi WIKI, senza alcuna difficoltà, in quanto si tratta di indicazioni che vanno bene per tutti. Il WIKI è uno strumento, e come tale deve essere trattato.

In aggiunta, un WIKI non è uno strumento che vive di vita propria. Deve essere curato costantemente, occorre sempre verificarne pagine e contenuti. Un WIKI Necessita di costante intervento umano, altrimenti non serve assolutamente a nulla. Diventa un banale contenitore di informazioni e ogni utente dovrà perdere tempo nel reperire le stesse.

E’ come se mettiamo degli oggetti in una grande scatola e l’unico sistema per accedere alla scatola è buco dove a malapena entra una mano. Se vogliamo prendere uno degli oggetti dobbiamo infilare la mano e, alla cieca, cercare di prendere l’oggetto che vogliamo. Non ha assolutamente senso.

A cosa serve un Wiki?

Un Wiki è uno Strumento che aiuta ad organizzare le informazioni, in modo efficiente e semplice. Il vantaggio di usare un wiki è che il sistema di organizzazione delle informazioni è molto flessibile e si basa sulla collaborazione degli stessi utenti, il cui obbiettivo non è solo la scrittura e fruizione delle informazioni, ma anche il costante miglioramento delle stesse.

Molto spesso si da per scontato che, una volta adottato un WIKI, tutti i problemi sulla documentazione siano stati superati. Errore numero 1 – Siamo appena all’inizio :-).

Tuttavia, una volta che è stato avviato, nei modi e nei tempi corretti, abbiamo a disposizione uno strumento che ci può semplificare la vita di tutti i giorni. Questo richiede uno sforzo iniziale molto forte, ma se ben fatto il risultato ripaga molto delle fatiche che sono sostenute nella fase iniziale di redazione e tutte le modifiche/estensioni successive sono poi di facile esecuzione.

Wiki come punto centrale

Inserire le informazioni solo su WIKI è un vantaggio enorme. Questo significa che le stesse sono presenti solo li, non sono duplicate o la duplicazione è ridotta al minimo possibile, e, molto importante, sono tutte collegate tra di loro, fornendo un filo logico di lettura e consentendo agli utenti di poterle visionare senza grandi problemi.

Il vantaggio di una centralizzazione è evidente: avere un unico punto dove far risiedere le informazioni riduce la possibilità di errore (non dobbiamo andare a cercare le informazioni a destra e manca) ed aumenta la produttività. Se l’informazione è sul WIKI, questa sarà ricercata li e non su mail o file system o chissà che altro.

In organizzazioni molto strutturate, molto spesso, sono dotati di complessi portali e sistemi farraginosi il cui obbiettivo è la centralità delle informazioni. Molto spesso questo non è vero, in quanto si tratta di soluzioni molto rigide, studiate per una necessità particolare e, come sempre accade, questa necessità non può essere facilmente adattata ai cambiamenti.

Un WIKI è una soluzione tra le più flessibili, in quanto le rigidità dei portali praticamente non esistono. Occorre che gli utenti sfruttino il più possibile questa flessibilità a proprio vantaggio. Il non farlo causa dei grossi problemi in fasi successive, quando si fruisce della informazione stessa. Come scrivevo prima, scrivere delle pagine alla rinfusa, non aiuta affatto, occorre che ci sia uno schema e che le informazioni siano collegate.

Facilità di uso

Le informazioni su WIKI devono essere organizzate in maniera semplice e devono essere fruibili altrettanto facilmente. Di conseguenza, in base alle esigenze aziendali, queste devono essere organizzate, collegate, referenziate in maniera opportuna. Più lo schema adottato è semplice, più è semplice fruirne. Maggiore caos nelle informazioni, maggiore caos nella ricerca, maggiore caos nel reperire le informazioni. Allora non ha alcun senso creare delle pagine su di un WIKI, sperando che gli utenti facciano da soli. Essere utenti non significa essere macchine.

Un primo passo è quello di dotare le pagine di una determinata gerarchia e, successivamente, collegare le pagine in maniera da poterle …. navigare. Avere delle pagine con la semplice informazione, ma letteralmente buttata alla rinfusa, serve a nulla. Avere delle pagine con informazioni e collegate tra di loro, dove un utente può, partendo da una determinata informazione, risalire alle altre, questo si che è un vantaggio non indifferente ed il modo di gestire un wiki. Sul come fare, abbiamo tutti gli strumenti del caso 🙂

Il secondo passo è aggiornare costantemente queste informazioni. Mantenere delle informazioni statiche, non ha molto senso. Aggiornarle costantemente ha il suo vantaggio. Per aggiornarle si intende sia estendere le informazioni presenti nella pagina, sia estendere la rete di collegamenti tra pagine.

Evitiamo le mode

Altro punto fondamentale: Non si usa un wiki solo perchè l’azienda concorrente lo usa e fa affari d’oro. Lo si usa per migliorare l’azienda, dare un valore aggiunto, ridurre la complessità e arrivare prima degli altri ai propri obbiettivi. Discorsi del tipo: loro lo usano e vanno benissimo; non servono a nulla: Errore numero 2. :-).

Uno strumento deve essere adottato in azienda solo se serve, no perché va di moda. Le mode passano. Le metodologie valide rimangono ed i risultati si vedono.

Percorso di Lettura

Altra caratteristica importante per un WIKI, riguarda come si può eseguire la lettura delle pagine. Questo è un concetto molto importante. Ogni pagina deve essere inserita in un opportuno percorso di lettura, attraverso il quale l’utente naviga alla ricerca delle sue informazioni.

Questo significa che la pagina del WIKI non è scollegata, ma è connessa con altre pagine. L’utente deve poter reperire questa pagina principalmente attraverso la navigazione di pagine. La ricerca deve essere l’ultima possibilità di reperire le informazioni, e non la normalità. Se ogni informazione viene reperita solo attraverso la ricerca, allora questo non va bene.

Facciamo un esempio. Supponiamo di avere un applicativo, cui abbiamo realizzato delle personalizzazioni per determinati clienti. Se, ad esempio, dobbiamo cercare una determinata personalizzazione, questa deve essere reperita attraverso:

  • la pagina del cliente. Da li deve essere possibile poter risalire alla personalizzazione. Se questa è comune a più clienti, allora si deve poter risalire dalle pagine dei clienti coinvolti.
  • la pagina dell’applicativo. Dalle indicazioni generali deve essere possibile risalire al particolare sviluppo operato.
  • la pagina delle personalizzazioni. Dalle indicazioni riassuntive delle personalizzazioni, deve poter essere possibile risalire alla informazione particolare del o dei clienti coinvolti.

Se non abbiamo molti elementi, allora conviene cercare per la ricerca.

Come descritto, prima di arrivare a cercare attraverso la maschera di ricerca, siamo transitati dalle pagine principali di altre informazioni, tentando una navigazione che ci porti a quello che stiamo cercando. Questo è l’utilizzo

 

Conclusione

Siamo giunti al termine di questo primo post, dedicato ai concetti fondamentali di un WIKI. Nei prossimi, cercheremo di fornire ulteriori approfondimenti che aiutino gli utenti (utilizzatori e scrittori) a fare meglio il proprio lavoro.