Ejemplo OKMDocument create o createsimple

OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules
Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
Post Reply
ah119
Fresh Boarder
Fresh Boarder
Posts: 3
Joined: Thu Jul 28, 2016 7:28 pm

Ejemplo OKMDocument create o createsimple

Post by ah119 » Fri Aug 05, 2016 3:31 pm

Hola, estoy atascado en la creación de un documento en la taxonomía de la herramienta. En un workflow tengo una clase que genera un pdf a partir de datos ingresados en un formulario, al crear el documento creo una carpeta con OKFolder, pero al tratar de crear el documento en OpenKM, no puedo, solo logro crearlo en los directorios de c:\, pero no puedo pasarla a la herramienta ¿Existe algún ejemplo de OKMDocument create o createsimple? Agradezco vuestra respuesta.

Un saludo.

jllort
Moderator
Moderator
Posts: 9589
Joined: Fri Dec 21, 2007 11:23 am
Location: Sineu - ( Illes Balears ) - Spain
Contact:

Re: Ejemplo OKMDocument create o createsimple

Post by jllort » Sat Aug 06, 2016 3:01 pm

Te aconsejamos utilizar el createSimple.
Me imagino que ya has revisado la documentacion del javadoc de aqui https://docs.openkm.com/apidoc/ y en concreto la clase OKMDocument.

Code: Select all

public Document createSimple(String token, String docPath, InputStream is)
Esto seria algo así:

Code: Select all

OKMDocument.getInstance(null, "/okm:root/fld/destino.txt",is);
IOUtils.closeQuietly(is);
No estoy seguro si al ejecutar la transacción ( porque esto lo estas haciendo en una transaccion verdad ? ) en el contexto del workflow se esta utilizando la session del usuario o no. En caso negativo ( podría ser perfectamente ), entonces necesitarias hacer este cambio:

Code: Select all

String systemToken = DbSessionManager.getInstance().getSystemToken();
OKMDocument.getInstance(systemToken, "/okm:root/fld/destino.txt",is);
IOUtils.closeQuietly(is);
Aqui dejamos como ejercicio que el InputStream apunte al fichero local que has creado.

El tema esta en que una vez has realizado el click en el formulario -> has completado la tarea, internamente el workflow dispara la transacción hacia la siguiente tarea. Me suena que esta transacción puede no estar enlazada con la sesion del usuario que ha realizado la tarea, sino con una sesion anónima del propio workflow, por lo que las operaciones que se hacen del lado del workflow deben estar autentificadas con un token de usuario autentificado ( en este caso el token del super usuario de sistema ).

ah119
Fresh Boarder
Fresh Boarder
Posts: 3
Joined: Thu Jul 28, 2016 7:28 pm

Re: Ejemplo OKMDocument create o createsimple

Post by ah119 » Mon Aug 08, 2016 2:40 pm

Estimado, solucioné mi problema, de todas formas te explico por si a alguna otra persona le sirve. Efectivamente estoy ocupando una transacción para dicha acción, anteriormente lo he intentado con un node y tuve problemas. La session la estoy pasando en null, el problema lo tenía en el InputStream, tenia mala la ruta... Bueno, al corregirlo anda todo OK. Gracias por vuestra ayuda.

Un saludo!

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest