• Subir la versión de Documentos en Enteros 1->2 en workflow

  • Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
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.
 #30360  by sandertaker
 
Buenas nuevamente tengo una duda, en esta ocasión es para modificar la versión del documento que estoy trabajando en OpenKM usando solo versiones mayores cuando ejecuto un workflow.
Cuando yo quiero encontrar la version de mi documento hago lo siguiente, suponiendo que el documento es doc version 1.4:
Code: Select all
String docPath, token, versionNueva;
Document doc = OKMDocument.getInstance().getProperties(token, docPath);
versionNueva = OKMDocument.getInstance().getProperties(tok, docP).getActualVersion().getName();
Lo que me deja en la versión 1.4, con lo cual da vueltas en el workflow y al finalizar sube a la versión 1.5, lo cual es lógico, ahora lo que quiero hacer es subir a la versión 2.0 o 3.0 según corresponda, cada vez que se ejecuta el workflow de forma correcta.
Para ello intenté lo siguiente
Code: Select all
String versionNueva= OKMDocument.getInstance().getProperties(tok, docP).getActualVersion().getName();

//ocupo versionNueva2 para transformar y poder redondear la variable
double versionNueva2=Float.valueOf(versionNueva);			
versionNueva2=Math.ceil(versionNueva2);

//acá devuelvo la version el valor redondeado como string
String versionNueva = String.valueOf(versionNueva2);

Cuando veo las salidas por consola no hay problemas, de hecho redondea la versión a la 2.0 o 3.0 según corresponda, sin embargo no he podido hacer que guarde la versión 2.0.

Saludos
 #30388  by jllort
 
El número de versión no lo puedes poner manualmente, sino que siempre pasa por una clase que es la que se encarga de gestionar la numeración. Esto se hace durante la operación de checkin, fíjate en la API debes tener un par de métodos para realizar el check-in, tambien es importante saber que clase tienes que te establece la numeración.

El método en cuestion es:
Code: Select all
public Version checkin(String token, String docPath, InputStream is, String comment, int increment)
La clase que controla el cambio de versión ( Administración, propiedades de configuración ). Si quieres ver la implementación lo tienes aquí https://sourceforge.net/p/openkm/code/H ... km/vernum/
version.numeration.adapter=com.openkm.vernum.MajorMinorVersionNumerationAdapter
Si llamas el checkin con el valor increment = 0 lo que te va a hacer es que el documento que este en una version 1.7 va a hacer un checkin con una versión 2.0
 #30427  by sandertaker
 
Estoy evisando la implementación que tiene el workflow, y la línea que se ocupa para aumentar de version es la siguiente:
Code: Select all
OKMDocument.getInstance().checkin(token, docPath, docIs, comentario);
pero si intento agregar el quinto argumento (donde debo enviar el 0 como integer) me dice que no está permitido el envío de un quinto parametro y que debo borrar uno de los anteriores.

o ¿debo editar el MajorMinorVersionNumerationAdapter.java?

Saludos
 #30470  by jllort
 
Que versión de OpenKM estas utilizando, porque esto en la vesion 6.3.X este método esta incluido en el api
Code: Select all
public Version checkin(String token, String docPath, InputStream is, String comment, int increment)
 #30495  by sandertaker
 
Lo intenté con la 6.3 y si no me falla la memoria 6.3.1 pero lo más probable es que haya hecho algo mal, cualquier duda pregunto.

Aunque para el desarrollo del workflow ocupo Jboss, y el wf está basado para la versión 6.2.5

Saludos

////////////////////Edito /////////////////////

Este es el mensaje de error que me sale en JBoss, cuando intento modificar el WF para que reciba el quinto parametro que corresponde al entero
Code: Select all
The method checkin(String, String, InputStream, String) in the type OKMDocument is not applicable for the arguments (String, String, InputStream, String, int)
Revisando el OKMDocument.class , por lo menos la versión que tengo ( la cual descargué de la wiki) está definido como
Code: Select all
  public Version checkin(String token, String docPath, InputStream is, String comment)
, así que por ahí creo que está el problema , nosé si habrá un OpenKM-classes.jar más nuevo ya que el de la wiki data del 13 de febrero del 2013, por mientras seguiré buscando

Saludos
 #30533  by jllort
 
Lo mejor es que te montes el entorno de desarrollo o que lo hagas a través del OpenKM.war ( exploded del tomcat ). Es bastante facil, te creas una libreria con todo lo que tenga tomcat/OpenKM/lib y añades un class Folder ( eclipse ) de tomcat/OpenKM/web-inf/classes

Para el entorno de desarrollo pégale un ojo aqui http://wiki.openkm.com/index.php/Developer_Guide

Lo de las classes OpenKM-classes.jar en su momento igual fue una idea aceptable, pero tiene varios problemas, sobretodo cuando vamos haciendo cambios en una versión, por eso no hemos sacado mas. De hecho la documentación va a sufrir un cambio radical el año próximo y estamos invirtiendo poco tiempo en la actual, sólo lo indispensable. El año próximo todo esto va a cambiar ( aunque tendreis que esperar a abril - julio para poder ver los resultados, porque el trabajo que hay detras es enorme ).
 #30592  by jllort
 
En principio el entorno de desarrollo es el mismo. Lo único que cambia es la url del proyecto a descargarte y nada mas. El resto continua igual que en la version 6.2.5, por eso no hemo añadido o modificado nada con respecto al anterior. Tengo algún dia en el que pienso que igual estaría bien descargarse un zip con el eclipse y el workspace ya configurado, y entonces pienso en que faltaría el java también y allí me freno.
 #30669  by sandertaker
 
Sigue sin quedarme del todo claro como importar la versión openkm 6.3 a mi entorno de desarrollo, y en la solución que me das no encuentro "tomcat/OpenKM/lib".

No habia respondido antes por cuestiones de trabajo, ocupado con otras cosas que demandaron más atención de mi parte

//////////////////Edito //////////////////////////////////

Hice lo que me dijiste, ¿esto se supone que debería reemplazar el importar el proyecto completo de OpenKM ?

Por el momento no he podido hacerlo andar, apenas pueda aviso como va.


Saludos
 #30686  by jllort
 
A ver si has instalado openkm tienes un directorio que es el tomcat, dentro esta el webapps/OpenKM/lib etc... El OpenKM.war cuando se deploya descomprime todo el contenido en una carpeta OpenKM
 #30687  by sandertaker
 
Configuré Jboss y todo funciona, pude enviar el quinto argumento en el checkin, en este caso el 0 para que suba de versión, sin embargo sigue subiendo de 0.1 en 0.1 al finalizar el workflow
//////////////////Edito//////////////

El argumento que hay que enviarle es 1 y no 0, ahí cambia de versión de 1 en 1 (para el que le sirva), sin embargo me borra los comentarios de la versión ( los resetea)

Saludos
 #30706  by sandertaker
 
para que se entienda funciona así el workflow siguiendo mas menos los datos que tiene para que se entienda: documento, versión, comentario.
Primero subo un documento que se llama "prueba.doc - 1.0 - REV A" cuando termina de ejecutar el workflow o lo que es lo mismo completa la vuelta termina como "prueba.doc - 1.1 - REV B" y así sucesivamente con la REV.. pasando de la A, a la B a la C. etc.

Cuando modifico el workflow con el quinto parametro es de la siguiente forma "prueba.doc - 1.0 - REV B" y de eso pasa a "prueba.doc - 2.0 - REV B" y luego "prueba.doc - 3.0 - REV B" siendo que solo con los 4 parametros si aumenta la letra en cuestión y es lo único que he tocado.

Saludos

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.