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.
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
Grazie, non ci sarei mai rrivato, di tutti i manuali che ho consultato non ho trovato indicazioni in merito, grazie
Archive content from product discussions in Italian.
This group is now closed and content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.