04-27-2017 02:28 PM
Ciao a tutti,
Sto cercando di scrivere una action che sposta un documento da un folder xx in un folder OBSOLETI.
Per fare ciò estraggo il nome del file che viene inserito nel folder e mi ricavo il nome del folder che inserisco nella variabile "dirName" poi eseguo questa query per ottenere il noderef del folder OBSOLETI che è legata al folder dirName:
String query_folder=("PATH:\"//app:company_home//st:sites//cm:test_site//cm:documentLibrary//cmocumenti//cm:${dirName}//cmBSOLETI\"AND TYPE:\"cm:folder\"");
spFolderQt.setQuery(query_folder);
rs = this.searchService.query(spFolderQt);
Quando eseguo questa query ricevo un errore lucene.queryParser sul $ di ${dirName} e se lo tolgo l'errore è su {dirName}.
Quale sintassi si usa per inserire una variabile in questa query?
Grazie.
05-04-2017 09:25 AM
Se esegui una query con il token PATH di Lucene devi ricordarti che i singoli termini del percorso devono essere costruiti considerando che non sono relativi al valore della proprietà cm:name ma del valore del child name del nodo del contenuto.
Questo perché Alfresco, come anche altri repository, utilizza lo standard XPath per alberare i nodi del grafo come da standard XML.
Questo significa che il valore di dirName deve essere codificato in ISO9075.
Se usi la Java API dovrai costruire la query in questo modo:
String dirNameISO9075 = ISO9075.encode(dirName);
String query_folder=("PATH:\"//app:company_home//st:sites//cm:test_site//cm:documentLibrary//cm:Documenti//cm:"+dirNameISO9075+"//cm:OBSOLETI\"AND TYPE:\"cm:folder\"");
In realtà la stessa cosa andrebbe fatta anche per OBSOLETI se avesse avuto caratteri speciali inclusi nel valore come ad esempio lo spazio.
Nel caso non fosse posizionale, potresti eseguire la seguente query Lucene senza fare l'encoding del valore:
String query_folder="TYPE:\"cm:folder\" AND @cm\\:name:\""+dirName+"\"";
Spero ti aiuti a risolvere
05-20-2017 04:38 PM
Grazie, non ci sarei mai rrivato, di tutti i manuali che ho consultato non ho trovato indicazioni in merito, grazie
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.