As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
Buenos días,
llevo unas semanas trabajando con Alfresco. Estoy intentando implementar una acción Java para llamarla desde una regla que ejecuta un script cuando se modifica un documento concreto del share. Estoy muy confusa sobre cúal es el procedimiento a seguir para poder llamar a esta acción desde un script. He creado un proyecto Maven, que genera la jerarquía de directorios por defecto. Una vez implementada la acción, ¿Cómo se hace el despliegue de la acción en Alfresco? y ¿Que directorios de /tomcat se utilizan?
Gracias.
Te recomiendo que leas la serie de tutoriales de Jeff Potts sobre desarrollo en Alfresco: About the Alfresco Developer Tutorial Series | ECM Architect
En concreto, para esta tarea debes prestar atención a:
Getting Started with the Alfresco Maven SDK | ECMArchitect | Alfresco Developer Tutorials
Creating Custom Actions in Alfresco | ECMArchitect | Alfresco Developer Tutorials
Una vez leída la serie de tutoriales concluyo que, para crear una acción que implemente una nueva funcionalidad en Alfresco, primero creo un proyecto Maven; desarrollo la clase en cuestión que extienda de ActionExecuterAbstractBase y registro ésta a través de un bean ubicado en el directorio src\main\resources\alfresco\module\*-repo\context\service-context.xml del proyecto creado; por último ejecutar ./run.sh para crear el AMP y desplegarlo en Alfresco a través del servidor Tomcat embebido. ¿Es éste el proceso correcto?
Y si es así, accediendo a http:\\localhost:8080/share ya se podría llamar a esta acción desde un script? Mi intención es crear una script que invoque la acción, por lo que no necesitaría mostrarla en la interfaz de usuario de share y por tanto no necesitaría crear un artefacto para hacer visible la acción en el share. ¿Es acertada esta suposición?
La acción que quiero implementar es para trabajar con documentos binarios. Se ejecuta un script que invoca la acción pasando unos valores por parámetros, la acción accede al documento binario y lo rellena con los parámetros que recibe para devolver el documento binario rellenado.
Muchas gracias.
El planteamiento tiene buena pinta.
Mediante JavaScript deberías poder invocar la acción utilizando el nombre que le pongas al bean de Spring sin más desarrollos que el propio AMP del repo.
La semana pasada estuve probando a desplegar un AMP de la forma descrita anteriormente. Creé un proyecto Maven con una clase que simplemente tenía un System.out.println() para escribir en el log de Alfresco. Una vez generado el AMP, lo ubiqué en el directorio alfresco\amps e instalé el AMP con el comando java -jar alfrescp-mmt.jar install amps/*-repo.amp tomcat/webapps/alfresco.war. Sin errores hasta el momento.
Accedo a mi localhost:8080/share y creo un script js ubicado en Diccionario de datos/Script, que se ejecuta con una regla y el cual invoca al método de la clase utilizando <valuedelbean>.<nombredelmétodo>;. Al ejecutarse la regla salta un error diciendo que <valuedelbean> no está definido.
He estado buscando y parece que la definición del bean debe ir en el directorio del proyecto src/main/amp/config/alfresco/module/repo-amp/context/service-context.xml y yo lo tengo en src\main\resources\alfresco\module\*-repo\context\service-context.xml, ya que en la distribución de mi proyecto no existe ese directorio.
Puede estar ahí la causa de que no reconozca el bean?
Gracias
Hola chicos,
he probado con el ejemplo de enviar email Actions | Alfresco Documentation pero consigo el mismo resultado que de la manera anterior " 'send-as-email' is not defined". También he probado a instalar el AMP utilizando apply_amps pero el resultado es el mismo otra vez, o peor, utilizando ese ejecutable después no puedo hacer login en Alfresco Share y tengo que volver a una copia anterior de alfresco.war .
Creo que el problema radica en el proceso de instalación del amp que estou siguiendo, comentado anteriormente. Y no sé como salir de este bache después de 2 semanas bloqueada.
Muchas gracias por todo.
Si sigues este tutorial deberías ser capaz de desarrollar una Action en Alfresco:
https://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html
También puede ayudarte a empezar la configuración del entorno de desarrollo:
https://ecmarchitect.com/alfresco-developer-series-tutorials/maven-sdk/tutorial/tutorial.html
En el fondo el proceso no es tan complejo:
a) Define una clase Java que extienda de ActionExecuterAbstractBase (https://github.com/jpotts/alfresco-developer-series/blob/master/actions/actions-tutorial-repo/src/main/java/com/someco/action/executer/SetWebFlag.java)
b) Declara el bean de Spring con el nombre que desees usar (https://github.com/jpotts/alfresco-developer-series/blob/master/actions/actions-tutorial-repo/src/main/resources/alfresco/module/actions-tutorial-repo/context/service-context.xml#L30)
Y ya debería aparecerte en la lista de la opción "Realizar acción" en la definición de reglas desde Share.
Resuelto el problema instalando el amp en java -jar bin\alfresco-mmt.jar install amps\<nombre-AMP>.amp tomcat\webapps\alfresco .
Muchas gracias!