<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Smart folders tutorial - prima parte in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/smart-folders-tutorial-prima-parte/m-p/158576#M112673</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;La metafora "&lt;EM&gt;cartelle e file&lt;/EM&gt;" è stata introdotta nella preistoria dell'informativa (nei mitici laboratori Xerox di Palo Alto) ed è risultata tanto efficace, intuitiva e universalmente riconoscibile che ancora oggi è utilizzata praticamente da tutti i sistemi operativi...&lt;BR /&gt;...però...&lt;BR /&gt;...quando viene applicata in ambito documentale mostra più di qualche limite.&lt;BR /&gt;Il problema è che un albero di cartelle esprime solo uno dei tanti modi di classificare un insieme di documenti. E' per questo che chi gestisce grandi archivi si trova spesso a dover ricorrere alla funzionalità di ricerca, per trovare i file che gli interessano.&lt;BR /&gt;Le &lt;EM&gt;smart-folders&lt;/EM&gt; nascono per superare (o almeno mitigare) questi limiti.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Ma cosa sono?&lt;/H2&gt;&lt;P&gt;Quello alla base delle &lt;EM&gt;smart-folders&lt;/EM&gt; non è certo un concetto nuovo. Semplificando all'estremo, possiamo dire che sono delle cartelle virtuali che contengono documenti risultanti da una ricerca.&lt;BR /&gt;Il fatto che siano "virtuali" è rilevante: non possono essere trattate alla stregua delle folder tradizionali(!) di Alfresco. Ad esempio, non è possibile copiare in esse dei file (ok, in effetti sotto determinate condizioni questo è possibile... ma il comportamento è diverso da quello standard).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Alfresco le &lt;EM&gt;smart-folders&lt;/EM&gt; possono essere di tre tipi:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;System&lt;/LI&gt;&lt;LI&gt;Custom&lt;/LI&gt;&lt;LI&gt;Type-based&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;EM&gt;System&lt;/EM&gt; e &lt;EM&gt;Custom&lt;/EM&gt; sono molto simili tra loro e più semplici da capire. Le&amp;nbsp;&lt;EM&gt;Type-based&lt;/EM&gt; sono più versatili ma un po' più complesse.&lt;/P&gt;&lt;P&gt;In questo post ci occuperemo dei primi due metodi. In un post successivo parleremo anche del terzo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Cominciamo...&lt;/H2&gt;&lt;P&gt;Per prima cosa bisogna abilitare le&amp;nbsp;&lt;EM&gt;smart-folders&lt;/EM&gt; in Alfresco perchè di default sono disattivate.&lt;BR /&gt;Nel solito &lt;EM&gt;alfresco-global.properties&lt;/EM&gt; settate:&lt;/P&gt;&lt;PRE class="language-none"&gt;&lt;CODE&gt;smart-folders-enabled = true‍&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;Naturalmente ci sarà bisogno di riavviare l'applicazione per recepire le nuove impostazioni. Fatelo... e mentre aspettate che Alfresco torni su, potrete ingannare il tempo creando un nuovo template, che altro non è che un file &lt;EM&gt;json&lt;/EM&gt; con una sintassi ben definita (nella &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://docs.alfresco.com/5.1/concepts/sf-ref-template-guidance.html" rel="nofollow noopener noreferrer" target="_blank"&gt;pagina ufficiale della documentazione sulle smart-folders&lt;/A&gt;&lt;SPAN&gt; trovate i dettagli).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ecco un semplice esempio:&lt;/P&gt;&lt;PRE class="language-javascript"&gt;&lt;CODE&gt;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="string token"&gt;"name"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Virtual Folders Test"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="string token"&gt;"nodes"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"id"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"101"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"name"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Documenti pdf"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"description"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"I documenti pdf dell'utente contenuti nel sito"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"search"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"language"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"fts-alfresco"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"query"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; "&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PATH&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;'&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;app&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;company_home&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;st&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;sites&lt;SPAN class="comment token"&gt;//*') &lt;/SPAN&gt;&lt;BR /&gt;AND &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;content&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mimetype&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;application&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;pdf &lt;BR /&gt;AND &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;modifier&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;CURRENT_USER&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt; OR &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;creator&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;CURRENT_USER&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"id"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"102"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"name"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Immagini"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"description"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Le immagini dell'utente contenute nel sito"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"search"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"language"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"fts-alfresco"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"query"&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; "&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;PATH&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;'&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;app&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;company_home&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;st&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;sites&lt;SPAN class="comment token"&gt;//*') &lt;/SPAN&gt;&lt;BR /&gt;AND &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;content&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mimetype&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;image&lt;SPAN class="operator token"&gt;/&lt;/SPAN&gt;jpeg &lt;BR /&gt;AND &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;modifier&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;CURRENT_USER&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt; OR &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;cm&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;creator&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;CURRENT_USER&lt;SPAN class="operator token"&gt;%&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Il significato delle sue parti è intuitivo: definiamo un oggetto che contiene una lista di nodi (due nel nostro caso). Ciascun nodo è a sua volta un oggetto con alcune proprietà: &lt;EM&gt;id&lt;/EM&gt;, &lt;EM&gt;name&lt;/EM&gt;, &lt;EM&gt;description&lt;/EM&gt;, &lt;EM&gt;search&lt;/EM&gt;.&lt;BR /&gt;Tra queste:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;le uniche obbligatorie sono &lt;EM&gt;search&lt;/EM&gt; con le sue (sotto)proprietà &lt;EM&gt;language&lt;/EM&gt; e &lt;EM&gt;query&lt;/EM&gt;.&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Id&lt;/EM&gt;, &lt;EM&gt;name&lt;/EM&gt;, &lt;EM&gt;description&lt;/EM&gt; sono opzionali. Id però è meglio specificarlo per generare un &lt;EM&gt;nodeRef&lt;/EM&gt; più corto.&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;Language&lt;/EM&gt; potrebbe accettare altri valori... ma per ora è consigliabile usare solo &lt;EM&gt;fts-alfresco&lt;/EM&gt;.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Il template appena creato va salvato in Alfresco nella cartella "&lt;EM&gt;&amp;lt;repository&amp;gt;/Dizionario dati/Modelli di cartella intelligente&lt;/EM&gt;" ("&lt;EM&gt;smart folder templates&lt;/EM&gt;" in inglese). Potete dargli nome -ad esempio- &lt;EM&gt;smartFolder_tutorial.json&lt;/EM&gt;.&lt;BR /&gt;Ora bisogna dire ad Alfresco che quello non è un file &lt;EM&gt;json&lt;/EM&gt; qualunque ma rappresenta un template di &lt;EM&gt;smart-folders&lt;/EM&gt;. Per farlo dobbiamo attribuire al documento un tipo speciale. Cliccate sul nome del file per aprire la vista di dettaglio, poi sulla destra selezionate "&lt;EM&gt;Cambia tipo&lt;/EM&gt;" e tra quelli proposti scegliete: "&lt;EM&gt;modello di cartella intelligente"&lt;/EM&gt; (&lt;EM&gt;smartFolderTemplate&lt;/EM&gt;).&lt;/P&gt;&lt;P&gt;Ci siamo quasi... &lt;BR /&gt;L'ultimo passo è attribuire il nostro template ad una cartella. Questo si fa associandole un aspetto ben preciso e valorizzando alcuni suoi metadati.&lt;BR /&gt;Dal menu delle azioni a destra selezionate "&lt;EM&gt;Gestisci aspetti&lt;/EM&gt;" e poi scegliete quello di nome "&lt;EM&gt;Cartella intelligente di sistema&lt;/EM&gt;". Poi, sempre nel menu delle azioni sulla destra, cliccate su "&lt;EM&gt;Modifica proprietà&lt;/EM&gt;" per veder comparire la finestra di dialogo con il form di modifica.&amp;nbsp; &lt;BR /&gt;Assicuratevi di mostrare &lt;STRONG&gt;tutte le proprietà&lt;/STRONG&gt; (con il pulsante in alto a destra). Se avete seguito correttamente le istruzioni dovreste veder comparire in basso un ulteriore campo di nome "&lt;EM&gt;Modello di cartella intelligente&lt;/EM&gt;" con una casella a discesa. Selezionate il template che avete creato in precedenza (&lt;EM&gt;smartFolder_tutorial.json&lt;/EM&gt;) e salvate le modifiche.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ora accadrà la magia: se aprite la cartella, scoprirete che ciascun oggetto node dichiarato nel template è stato&amp;nbsp; trasformato in una &lt;EM&gt;smart-folder&lt;/EM&gt;. Il contenuto della &lt;EM&gt;smart-folder&lt;/EM&gt; è il risultato della query specificata nella property &lt;EM&gt;query&lt;/EM&gt;.&lt;BR /&gt;Il nostro esempio genererà quindi due &lt;EM&gt;smart-folders&lt;/EM&gt;:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;la prima conterrà tutti i documenti di tutti i siti (&lt;EM&gt;PATH:'/app:company_home/st:sites//*'&lt;/EM&gt;) che siano pdf (&lt;EM&gt;=cm:content.mimetype:application/pdf&lt;/EM&gt;) creati o modificati dall'utente corrente (&lt;EM&gt;=cm:modifier:%CURRENT_USER% OR =cm:creator:%CURRENT_USER%&lt;/EM&gt;).&lt;/LI&gt;&lt;LI&gt;La seconda è analoga ma selezionerà solo i file di tipo jpg.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Una paio di cose prima di chiudere&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Notate che in tutte e due le query abbiamo filtrato i risultati per utente corrente. Questo non perché per le &lt;EM&gt;smart-folders&lt;/EM&gt; non valgano le regole di accesso (se non potete vedere un file, non lo vedrete!) ma per ottimizzare le performance ed evitare di recuperare documenti inutili.&lt;/LI&gt;&lt;LI&gt;Perché le &lt;EM&gt;smart-folders&lt;/EM&gt; funzionino correttamente, bisogna aver cura di scegliere &lt;EM&gt;solr4&lt;/EM&gt; come servizio di ricerca e di configurare la &lt;EM&gt;Full Text Search&lt;/EM&gt; in modo da usare il database ("&lt;EM&gt;Use Database if possibile&lt;/EM&gt;" oppure "&lt;EM&gt;Always use Database&lt;/EM&gt;").&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PS&lt;/STRONG&gt;:&lt;BR /&gt;Vi state ancora chiedendo che differenza c'è tra i due tipi di &lt;EM&gt;smart-folders&lt;/EM&gt;: &lt;EM&gt;System&lt;/EM&gt; e &lt;EM&gt;Custom&lt;/EM&gt;? Ecco soddisfatta la vostra curiosità. Se usate l'aspect "&lt;EM&gt;Cartella intelligente di sistema&lt;/EM&gt;" potrete scegliere solo i template presenti nella directory "&lt;EM&gt;&amp;lt;repository&amp;gt;/Dizionario dati/Modelli di cartella intelligente"&lt;/EM&gt;.&lt;BR /&gt;Se invece avete optato per "&lt;EM&gt;Cartella intelligente personalizzata&lt;/EM&gt;" il template potrà essere posizionato ovunque nel repository... tutto qui.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="text-align: right;"&gt;(&lt;A _jive_internal="true" href="https://community.alfresco.com/groups/italian-user-group/blog/2016/12/07/smart-folders-parte-seconda" rel="nofollow noopener noreferrer"&gt;Smart folders tutorial - seconda parte&lt;/A&gt;)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Nov 2016 17:33:58 GMT</pubDate>
    <dc:creator>davidciamberlan</dc:creator>
    <dc:date>2016-11-14T17:33:58Z</dc:date>
    <item>
      <title>Smart folders tutorial - prima parte</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/smart-folders-tutorial-prima-parte/m-p/158576#M112673</link>
      <description>La metafora "cartelle e file" è stata introdotta nella preistoria dell'informativa (nei mitici laboratori Xerox di Palo Alto) ed è risultata tanto efficace, intuitiva e universalmente riconoscibile che ancora oggi è utilizzata praticamente da tutti i sistemi operativi......però......quando viene app</description>
      <pubDate>Mon, 14 Nov 2016 17:33:58 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/smart-folders-tutorial-prima-parte/m-p/158576#M112673</guid>
      <dc:creator>davidciamberlan</dc:creator>
      <dc:date>2016-11-14T17:33:58Z</dc:date>
    </item>
  </channel>
</rss>

