Error al enviar notificaciones con plantilla

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

Error al enviar notificaciones con plantilla

Hola a todos,

Primero decir que soy nuevo en Alfresco, así que a lo mejor esto que voy a consultar es algo simple.
Estoy usando la versión 4.2.e corriendo bajo CentOs 6.5 y en principio está funcionando bien. He realizado algunas modificaciones básicas típicas, como que solo los administradores puedan crear sitios nuevos, deshabilitar la posibilidad de compartir en redes sociales, etc.

El problema es el siguiente: He creado una regla para que al subir o modificar un documento en la carpeta X se envíe una notificación por correo al usuario X. La regla funciona bien, salvo cuando uso la plantilla por defecto notify_user_email_es.ftl. En este caso el correo no se envía y obtengo el siguiente error en catalina.out

ERROR [freemarker.runtime] [http-apr-8080-exec-3] Template processing error: "Expression person is undefined on line 38, column 57 in workspace://SpacesStore/blablabla…"
The problematic instruction:
——-
==> ${person.properties.firstName}

¿A alguien le ha pasado antes? ¿Alguna idea de cómo solucionar esto?
7 Replies
cristinamr
Intermediate

Re: Error al enviar notificaciones con plantilla

Pues parece un bug: Si ojeas este hilo (en francés) ocurre lo mismo, y al parecer lo han corregido en la version 4.2 enterprise pero no en la community porque no fue reportado. Una solución posible es ver qué han hecho en ese template para la 4.2, pero a lo mejor no es sencillo y afecta a más componentes.
Otra opción es que crees o modifiques esa plantilla y no accedas a esa propiedad en el objeto person (que por lo que sea no te lo está cargando cuando se manda la invitación).

Si encuentro cualquier cosilla te comento.

Un saludo!
myanesg
Member II

Re: Error al enviar notificaciones con plantilla

Muchas gracias por responder, CristinaMR

Lo curioso es que en la versión 4.2.c sí funciona pero en la 4.2.e no y las plantillas son idénticas (aunque volveré a revisarlas). Con lo cual entiendo que el problema no es tan sencillo de solucionar como parece, al menos no está a mi alcance.
Intentaré modificar la plantilla o crear otra. De todos modos ¿esto se puede "reportar" a Alfresco de alguna manera? ¿Cómo es el proceso? ¿sabes?

¡Gracias!
cristinamr
Intermediate

Re: Error al enviar notificaciones con plantilla

Oye, acabo de probar con la e y efectivamente sí que funciona… Qué cosas.
No sé si te merece la pena perder el tiempo, me refiero a que es más sencillo bajarte los wars de la versión 4.2.e y subir la versión que tengas. Además que te arriegas a que te digan: Se corrige en la versión e, actualiza! <– Porque me los veo venir jajaja
myanesg
Member II

Re: Error al enviar notificaciones con plantilla

Gracias,
No me he explicado bien, yo estoy usando la versión e y no me funciona. Me funcionaba con la c.

Saludos.
alkalde
Member II

Re: Error al enviar notificaciones con plantilla

Hola a todos, retomo este hilo ya que me encuentro en la misma situación y de momento por más que he buscado una solución no la he encontrado.

Tiene algo que ver con las plantillas y algo más, ya que si modifico la plantilla y dejo sólo html, sin variables de ningún tipo, también se produce errores. Si no se utiliza una plantilla si que funciona el envío de notificaciones, pero claro no puedo notificar quien ni donde ha creado contenido.

En mi caso, si aplico la regla a un directorio y un usuario mete algo dentro desde el share, la barra de progreso se pone de color naranja y muestra el mensaje "Transaction silently rolled back because it has been marked as rollback-only". El fichero se sube y se queda almacenado en la carpeta, pero no se envía el email.

El catalina.out tiene este error:
ERROR [extensions.webscripts.AbstractRuntime] [http-bio-9494-exec-97] Exception from executeScript - redirecting to status template error: Transaction silently rolled back because it has been marked as rollback-only
org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:759)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
   at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
   at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:474)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:491)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:529)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:341)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
   at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:724)


Es curioso pero antes me salía en el mismo error que al compañero que inició el hilo, pero ahora me sale este que he puesto.

¿Alguien tiene alguna información nueva sobre por que no funciona cuando eliges una plantilla?

Un saludo y gracias por adelantado.
alkalde
Member II

Re: Error al enviar notificaciones con plantilla

Hola de nuevo, en mi caso era por culpa de los permisos de la carpeta "Diccionario de Datos" donde se guardan las plantillas. Ignorante de mi, que para no mostrar esa carpeta al resto de usuarios le cambié los permisos.

En mi caso dando permisos de consumidor a todos, ya no hay errores y los email se envían usando la plantilla elegida.

Ahora me gustaría modificar la plantilla, para que en lugar de mostrar el enlace del archivo subido para visualizarlo a través del share, me gustaría incluir la ruta del archivo. Es decir, en lugar de poner el enlace tipo http://192.168.1.1:9494/share/page/document-details?nodeRef=workspace://SpacesStore/4a117d51-55ec-4a...
poner /Alfresco/PROVEEDORES/Carpeta1/fichero. Quizás debería abrir un hilo para esta consulta.

Un saludo.
alkalde
Member II

Re: Error al enviar notificaciones con plantilla

Hola de nuevo,

para el que le pueda interesar, para poner en la plantilla de notificación la ruta completa al los archivos, que sobre todo donde se trabaja con CIFS es más útil que la ruta para visualizar el fichero en share. Con las variables
<p>${document.displayPath}/${document.name}</p>

se muestra la ruta completa del archivo tipo /Espacio de Empresa/Directorio1/Subdiretorio2/fichero

Saludos.