Page 1 of 1

Ejemplo OKMDocument create o createsimple

PostPosted:Fri Aug 05, 2016 3:31 pm
by ah119
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.

Re: Ejemplo OKMDocument create o createsimple

PostPosted:Sat Aug 06, 2016 3:01 pm
by jllort
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 ).

Re: Ejemplo OKMDocument create o createsimple

PostPosted:Mon Aug 08, 2016 2:40 pm
by ah119
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!