• Ejemplo OKMDocument create o createsimple

  • OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
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.
 #42118  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.
 #42122  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 ).
 #42135  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!

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.