cancel
Showing results for 
Search instead for 
Did you mean: 

Conectar Alfresco con BD externa

angelmartinboni
Confirmed Champ
Confirmed Champ

Muy buenas compañeros!

espero que me podáis ayudar de nuevo, ya que sigo aumentando mi conocimiento sobre Alfresco cada día.

Tenemos un script con el que saco un catálogo de enlaces, un listado.

Ese listado de enlaces, lo saco del mismo Alfresco dónde ejecute el script, pero además necesito traerme un dato de una BD ajena a la del Alfresco.

Entonces, necesito ayuda sobre cómo se podría realizar este proceso, si en el código JavaScript se podría hacer esta conexión a la BD, o haciendo un request de un servlet que hagamos aquí, o mediante webscript o webservice...

Cuántas opciones tengo y cuál sería la mejor en relación elegante - seguridad - costoTiempo.

Muchas gracias de antemano.

Saludos.

12 REPLIES 12

angelborroy
Community Manager Community Manager
Community Manager

Bajo mi punto de vista lo mejor sería realizar un servlet en la base de datos externa y consumirlo por REST desde Alfresco. Puedes realizar invocaciones HTTP desde JavaScript de servidor.

Hyland Developer Evangelist

Buenos días ‌, gracias por la rapidez.

A ver si lo he entendido, hacer una invocación HTTP desde mi script, con un request o algo por el estilo, al servlet ¿no? y luego manejar el resultado con REST?

Qué es REST?

Siento ala ignorancia pero nunca lo he hecho antes.

Creo que me he precipitado...

Desde el JavaScript (Rhino) de repositorio no vas a poder (o es muy difícil) invocar a un servlet. Tendrías que desarrollar la lógica en Java en vez de en JavaScript.

Hyland Developer Evangelist

A ver,

nosotros ya hemos conseguido que desde un script monte un HTML, los enlaces de ese HTML en el href tienen configurada la llamada a un servlet que invoca los webservice en un proyecto Maven y nos muestra en el navegador el contenido del documento al que hace referencia el enlace origen.

Desconozco lo que es Rhino, ‌.

la "lógica" en java a qué te refieres? hacer un servlet que se conecte a la BD, por ejemplo?

Me gustaría saber si habéis hecho algún tipo de administración electrónica parecida alguna vez y qué alternativas veis al problema.

Queda claro que mis conocimientos son escasos de momento.

Gracias de antemano!

Saludos.

Lo cierto es que me pierdo un poco en lo que estáis haciendo.

Nosotros hemos hecho varias administraciones electrónicas diferentes, pero siempre utilizando Alfresco SDK estándar.

Hyland Developer Evangelist

Intentaré explicarme mejor ‌,

Ejecuto un Script.js en un Alfresco X que recorre un espacio y me crea un .HTML con enlaces, además de estos enlaces necesito sacar unos datos que están en otra BD, distinta a la BD de la que tira este Alfresco X, está en otro servidor y demás.

Lo que necesito es que este Script.js se conecte a esa BD y me traiga unos datos, y no sé cómo implementar esta funcionalidad, si en el mismo código del script añadir más JavaScript, o llamando desde el código a un servlet externo o como...

Disculpad las molestias.

Muchas gracias. 

angelborroy
Community Manager Community Manager
Community Manager

Si quieres te explico cómo lo haría yo.

Estás desarrollando un Web Script que produce una vista HTML. La lógica la implementas en JavaScript (Rhino, que es JavaScript de servidor). Las opciones para conectarse a una base de datos externa o a un servlet vía HTTP son limitadas.

Por ese motivo, cuando encuentro un escenario de este tipo programo la lógica del Web Script en Java en vez de en JavaScript. Desde Java hay muchas más herramientas que me permiten conectar a sistemas externos: JDBC, Http Client...

Hyland Developer Evangelist

cesarista
World-Class Innovator
World-Class Innovator

Hola:

Si el dato a consumir de base de datos es una tabla secundaria, es posible guardarla en el repositorio directamente como un CSV, por ejemplo via webdav, y de esa manera puedes hacer un getcontent desde JS, parsearlo y acceder al dato. Si es una tabla que está viva, a veces he llegado a hacer un cronjob de sistema operativo en el servidor Alfresco, que me actualiza ese CSV. 

Pero en general lo que dice  es la manera ortodoxa y eficiente de hacer una conexión a base de datos genérica.

Saludos.

--C.

Ahora lo tengo un poco más claro, gracias de nuevo a ambos ‌ y ‌.