Ottenere proprietà custom da template

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

Ottenere proprietà custom da template

Un saluto a tutto il forum,
ho un problema relativo alle template, purtroppo come tante cose con Alfresco non esiste una completa documentazione riguardo alle api…mi riferisco in particolare a quelle per i workflow.

Ho creato un workflow avanzato con una custom property "nota" chiamata "my:nota" di tipo string. Come faccio a visualizzarla con la template Freemarker??

premetto che vorrei vedere tutte le properties del workflow con un webscript html come negli esempi… basterebbe quindi solo sapere il codice corretto o almeno se si può fare, premesso che tutte le altre proprietà del workflow, cioè quelle base con namespace bpm riesco ad ottenerle.

Grazie,
raptus
6 Replies
openpj
Moderator
Moderator

Re: Ottenere proprietà custom da template

Ho creato un workflow avanzato con una custom property "nota" chiamata "my:nota" di tipo string. Come faccio a visualizzarla con la template Freemarker??
Considerando che node è il nome della variabile nello scope del template FreeMarker:

${node.properties["my:nota"]}
raptus
Member II

Re: Ottenere proprietà custom da template

grazie mille per la risposta, ho usato un altro stratagemma ma il consiglio è stato comunque prezioso, grazie ancora!  Smiley Happy
mturatti
Member II

Re: Ottenere proprietà custom da template

Parlando in generale sulla documentazione free, in effetti devo ammettere che relativamente ai workflow alcuni documenti sono un po' datati…
Si può dare una occhiata, per partire, al wiki:
http://wiki.alfresco.com/wiki/Category:Workflow

Nella content community è presente un documento di Jeff Potts, non recente ma sempre interessante:
http://share.alfresco.com/share/page/site/community/document-details?nodeRef=workspace://SpacesStore...

Su Amazon esistono alcuni buoni libri su Alfresco, che trattano anche di workflow:
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&field-keywords=alfresco&x=0&y=0

Mi risulta che gli amici di Sourcesense stiano lavorando proprio adesso ad un altro libro su Alfresco, che immagino avrà un capitolo aggiornato sull'argomento.
In attesa che Activiti sia parte integrante del prodotto (http://www.activiti.org/).

Saluti
alch3mi5t_7429
Member II

Re: Ottenere proprietà custom da template

Io invece ho dei problemi utilizzando la stringa suggerita sopra..
il mio FTL ha un pezzo scritto così:
<td>${node.name}</td>
<td>${node.properties.created?datetime}</td>
<td>${node.properties.modified?datetime}</td>
<td>${node.properties.description}</td>
<td>${node.content}</td>

Funziona perfettamente:
se lo modifico così:
<td>${node.name}</td>
<td>${node.properties.created?datetime}</td>
<td>${node.properties.modified?datetime}</td>
<td>${node.properties.["custom:customproperty"]}</td>
<td>${node.content}</td>

l'errore è:
   freemarker.core.ParseException - Encountered "[" at line 12, column 23 in org/alfresco/demo/wslib/simpleui/DocumentList.get.html.ftl. Was expecting one of: "false" … "true" … <LESS_THAN> … <LESS_THAN_EQUALS> … <ESCAPED_GT> … <ESCAPED_GTE> … "*" … "**" … "in" … "as" … "using" … <ID> …

freemarker.core.FMParser.generateParseException(FMParser.java:4697)
freemarker.core.FMParser.jj_consume_token(FMParser.java:4568)
freemarker.core.FMParser.DotVariable(FMParser.java:867)
freemarker.core.FMParser.AddSubExpression(FMParser.java:717)
freemarker.core.FMParser.PrimaryExpression(FMParser.java:273)
freemarker.core.FMParser.UnaryExpression(FMParser.java:319)
freemarker.core.FMParser.MultiplicativeExpression(FMParser.java:435)
freemarker.core.FMParser.AdditiveExpression(FMParser.java:385)
freemarker.core.FMParser.RangeExpression(FMParser.java:556)
freemarker.core.FMParser.RelationalExpression(FMParser.java:511)
freemarker.core.FMParser.EqualityExpression(FMParser.java:476)
freemarker.core.FMParser.AndExpression(FMParser.java:585)
freemarker.core.FMParser.OrExpression(FMParser.java:608)
freemarker.core.FMParser.Expression(FMParser.java:221)
freemarker.core.FMParser.StringOutput(FMParser.java:1061)
freemarker.core.FMParser.Content(FMParser.java:2575)
freemarker.core.FMParser.OptionalBlock(FMParser.java:2786)
freemarker.core.FMParser.List(FMParser.java:1257)
freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2375)
freemarker.core.FMParser.Content(FMParser.java:2618)
freemarker.core.FMParser.OptionalBlock(FMParser.java:2786)
freemarker.core.FMParser.Root(FMParser.java:2958)
freemarker.template.Template.<init>(Template.java:149)
freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:448)
freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:361)
freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235)
freemarker.template.Configuration.getTemplate(Configuration.java:487)
freemarker.template.Configuration.getTemplate(Configuration.java:452)
org.alfresco.repo.web.scripts.RepositoryTemplateProcessor.hasTemplate(RepositoryTemplateProcessor.java:145)
org.springframework.extensions.webscripts.TemplateProcessorRegistry.findValidTemplatePath(TemplateProcessorRegistry.java:214)
org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:585)
org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:383)
org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:381)
org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:436)
org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:466)
org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:304)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:352)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:189)
org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
java.lang.Thread.run(Thread.java:662)

non ne esco proprio. Sembra che l'errore sia nella parentesi quadra..
ho provato a usare altre stringhe ma sempre con lo stesso risultato.
maverik
Member II

Re: Ottenere proprietà custom da template

Questa va cambiata:

<td>${node.properties.["custom:customproperty"]}</td>

in:

<td>${node.properties["custom:customproperty"]}</td>
alch3mi5t_7429
Member II

Re: Ottenere proprietà custom da template

Risolto!
grazie mille,
mi ero anche segnato da qualche parte la stringa esatta ma tra una cosa e l'altra me l'ero persa.
thx again