cancel
Showing results for 
Search instead for 
Did you mean: 

Desplegar una acción en Alfresco

peli
Champ in-the-making
Champ in-the-making

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.

17 REPLIES 17

peli
Champ in-the-making
Champ in-the-making

Llevo intentando hacer funcionar el ejemplo pero nada... He copiado las clases y el bean en mi proyecto pero cuando se ejecuta la regla del script en el share sigue apareciendo el error 'ratings is not defined'. He estado buscando info y sospecho de si el problema vendrá de la intalación del módulo AMP en Alfresco. Para añadir una extensión de Alfresco se instala el amp de la forma "java -jar bin\alfresco-mmt.jar amps\*.amp tomcat\webapps\alfresco.war" y ya está?

Porque al desisntalar el módulo, aparece un log que muestra:

- Removing file '/WEB-INF/lib/*.jar' from war

- Removing file '/WEB-INF/classes/alfresco/module/<nombre-modulo>/modifications.install' from war

- Removing file '/WEB-INF//classes/alfresco/module/<nombre-modulo>/module.properties' from war

Y si accededes a esos a ambos directorios una vez instalado el módulo, no existen ningún jar ni ningún directorio con el nombre del módulo que acabas de instalar. ¿Es porque están encapsulados en alfresco.war?

Vi que otra forma de añadir un módulo a Alfresco sería copiar el JAR en tomcat/webapps/WEB-INF/lib, pero de de esta manera Alfresco me da error al intentar acceder con un 'No se han reconocido sus datos de acceso o Alfresco Content Service no está disponible en este momento'.

Muchas gracias por la ayuda.

cristinamr
World-Class Innovator
World-Class Innovator
...Alfresco se instala el amp de la forma "java -jar bin\alfresco-mmt.jar amps\*.amp tomcat\webapps\alfresco.war" y ya está?

No lo estás instalando correctamente, sería java-jar bin\alfresco-mmt.jar install amps\tu-amp.amp ruta_a_webapps\alfresco.war

Y lo mismo para share: java-jar bin\alfresco-mmt.jar install amps_share\tu-amp.amp ruta_a_webapps\share.war

Con el jar alfresco-mmt.jar puedes ver incluso que amps tienes instalados. Aquí más referencia: Using the Module Management Tool (MMT) | Alfresco Documentation 

¿Puedes mirar si lo tienes correctamente instalado?

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

peli
Champ in-the-making
Champ in-the-making

Nada Cristina, no consigo salir de este bache. Os expongo en procedimiento que sigo:

1. Creación de la clase en src\main\java.

2. Registro del bean en src\main\resources\alfresco\module\<nombre-repo>\context\service-context.xml

3. Generación del AMP con mvn package.

4. Ubicación del AMP en el directorio de Alfresco alfresco\amps.

5. Instalación mediante java -jar bin\alfresco-mmt.jar install amps\<nombre-AMP>.amp tomcat\webapps\alfresco.war

6. Instalación mediante java -jar bin\alfresco-mmt.jar install amps\<nombre-AMP>.amp tomcat\webapps\share.war

7. Comprobación de la instalación mediante java -jar bin\alfresco list alfresco\webapps\alfresco.war y java -jar bin\alfresco list alfresco\webapps\share.war. Comprobación afirmativa tanto para alfresco.war como para share.war.

8. Creación de una regla en una carpeta de un espacio de Alfresco que ejecuta el script ubicado en Diccionario de datos\Scripts.

Adjunto el código del proyecto Maven, que no tiene nada, junto con el script, que es una línea. Ya no tengo ideas de lo que puedo estar haciendo mal...

angelborroy
Community Manager Community Manager
Community Manager

Para invocar una acción desde JavaScript tienes que hacer algo así: execute | Alfresco Documentation 

En ese ejemplo el nombre del bean de Spring es "mail".

Hyland Developer Evangelist

peli
Champ in-the-making
Champ in-the-making

Pero para usar execute debería implementar una clase JAVA que extendiera de ActionExecuterAbstractBase y heredara sus métodos, y la clase que he desarrollado extiende de BaseProcessorExtension y sólo presenta un método que contiene un System.out. .

Voy a probar de la manera que tú dices.

Gracias

peli
Champ in-the-making
Champ in-the-making

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.

angelborroy
Community Manager Community Manager
Community Manager

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/ma...)

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/ma...)

Y ya debería aparecerte en la lista de la opción "Realizar acción" en la definición de reglas desde Share.

Hyland Developer Evangelist

peli
Champ in-the-making
Champ in-the-making

Resuelto el problema instalando el amp en java -jar bin\alfresco-mmt.jar install amps\<nombre-AMP>.amp tomcat\webapps\alfresco .

Muchas gracias!