ricerca tramite tag

cancel
Showing results for 
Search instead for 
Did you mean: 
davidedge
Member II

ricerca tramite tag

Ciao a tutti ragazzi,
sto implementando un custom wf con activiti e mi sono piantato sulla funzione principale di quest'ultimo: la ricerca di documenti aventi un determinato tag all'interno del repository di Alfresco.
Leggendo in letteratura ho provato ad utilizzare la javascript API "childrenByTags(tag)", ma non funziona cioè non mi trova niente.



var tag = "sigima";
var taggedNodes =companyhome.childrenByTags(tag);   


Da evidenziare che utilizzo Alfresco Community 4.2.d e sono passato da sorl a lucene perchè avevo dei problemi nella visualizzazione dei tag. Può essere la causa del mio problema? Ho provato a usare anche la "luceneSearch()",ma anche qua niente da fare.


var luceneTagQuery = "PATH:"/cm:companyhome/cm:taggable/cm:sigima/member"";
var nodes = search.luceneSearch(luceneTagQuery);


E' giusta tale sintassi?
Poi devo riuscire a stampare i nome dei documenti(scriptNode.name?)nel task che segue il service task che effettua la ricerca. Come posso fare? Io non conosco la dimensione dell'array che mi verrà restituito a priori e quindi non posso appoggiare ciascun valore in una variabile di processo.
Grazie a chiunque risponderà.
2 Replies
davidciamberlan
Alfresco Employee

Re: ricerca tramite tag

Ciao,

L'uso del childrenByTags è corretto… non ho idea del perchè non ti funzioni. Cosa fai con la variabile taggedNodes dopo la ricerca?

Per quanto riguarda lucene, non devi mettere /cm:companyhome all'inizio (che tra l'altro è sbagliato: dovrebbe essere /app:company_home).
Sempre con lucene puoi anche provare ad usare
TAG:"tagname"
.
davidedge
Member II

Re: ricerca tramite tag

Grazie della rispostaSmiley Happy
Allora ora la childrenByTags sembra funzionare.
Con la variabile taggedNodes voglio riuscire a stampare nello user task successivo la lista dei nodi restituiti dalla ricerca.


    <serviceTask id="alfrescoScripttask1" name="fornisce elenco aziende" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate">
       <extensionElements>
          <activiti:field name="script">
            <activiti:string>
                  
                  var tag = "collaborazione";
                  var taggedNodes =companyhome.childrenByTags(tag);   
         execution.setVariable('wf_taggedNodesNames',execution.getVariable('taggedNodes'));
                  
                  
                </activiti:string>
         </activiti:field>
      </extensionElements>
   </serviceTask>


Mi è stato detto che è possibile passare l'array taggedNodes all'interno di una variabile di processo.
E' giusto il setVariable? Cioè la variabile taggedNodes è visibile già a livello di processo? Perchè ho provato a scrivere

execution.setVariable('wf_taggedNodesNames',task.getVariable('taggedNodes'));


ma mi restituisce un errore dicendomi che task non è definito.

Nel file model-custom poi ho messo

      <aspect name="wf:aziendeScelte">
         <properties>
            <property name="wf:taggedNodesNames">
               <type>d:text</type>
                                        <multiple>true</multiple>
            </property>
         </properties>
      </aspect>


Tale codice dovrebbe permettermi di visualizzare gli elementi dell'array di cui non conosco la dimensione esatta. E' giusto?