• Automatizacion

  • 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.
 #28977  by gcosta
 
Buenos días, finalmente he conseguido montar el entorno de developer y funcionando correctamente. He echo distintas pruebas entre ellas algún que otro workflow y todo funciona correctamente.

Bien, ahora centrándonos en el tema del "Automation" referente al "move" no hay manera de que consiga hacerlo funcionar. Tal y como comentasteis en el post anterior he realizado los cambios en la clase PathConatins.java. La he compilado pero al intentar añadir la "keyword" al hacer un "move" no funciona y me da error.

Lo que si he podido comprobar es que la clase que me disteis de referencia apunta a un "import com.openkm.dao.bean.Automation;" clase que no existe en el paquete "svn" ni en versión 6.2 ni en versión 6.3 por lo que hice las modificaciones partiendo de la clase original "PathContains.java" que viene en el "svn".

Bien a continuación os dejo el código de mi clase modificada a ver si podéis ayudarme en que es lo que hago mal.

Gracias.
Code: Select all
/**
 *  OpenKM, Open Document Management System (http://www.openkm.com)
 *  Copyright (c) 2006-2014  Paco Avila & Josep Llort
 *
 *  No bytes were intentionally harmed during the development of this application.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

package com.openkm.automation.validation;

import java.util.HashMap;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.openkm.api.OKMRepository;
import com.openkm.automation.AutomationUtils;
import com.openkm.automation.Validation;

/**
 * Check if the current parent path contains a designed one. The only
 * parameter is a path and will test if this one is included in the
 * actual parent.
 * 
 * @author pavila
 */
public class PathContains implements Validation {
	private static Logger log = LoggerFactory.getLogger(PathContains.class);
	
	@Override
	public boolean isValid(HashMap<String, Object> env, Object... params) {
		String uuid = AutomationUtils.getString(0, params);
		
		try {
			String docUuid = AutomationUtils.getUuid(env);
	        String parentPath = OKMRepository.getInstance().getNodePath(null, docUuid);
			String path = OKMRepository.getInstance().getNodePath(null, uuid);
			
			if (parentPath.startsWith(path)) {
				return true;
			} else {
			 return false;
			}
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}
		
		return false;
	}
}
 #28990  by jllort
 
La clase que te pusimos en el post se corresponde con la 6.4 es probable que no sea exactamente igual ( aunque si muy parecida ). Tienes que utilizar la que viene en el svn como base.
- Lo primero es que yo la llamaría de otra forma PathContainsOnMove.java
- El código parece correcto ( debuga para ver que esta pasando, no hay otra ).
 #28996  by gcosta
 
Buenos días, finalmente he conseguido que funcione perfectamente. Muchas gracias. Eso ha permitido que puede realizar muchísimas acciones que tenía previstas al realizar un movimiento de documento.

Aprovecho para comentaros que la acción "revokeKeyword" no funciona, yo lo he solucionado realizando la acción a través de un script. Os lo comento por si lo queréis revisar para futuras actualizaciones.

Muchas gracias por la ayuda y tiempo dedicado.
 #29006  by jllort
 
El revokeKeyword no funciona en que escenario ( pre / post ), indicanos un poco como reproducir el problema.
 #29033  by jllort
 
Para confirmar exactamente lo que haces, sobre que evento estas ejecutando el eliminar la keyword ( ya me queda claro que es un post ). Y esta es la única acción que realizas o realizas alguna otra mas ?
 #29050  by gcosta
 
Buenos días, el procedimiento que hago es el siguiente.

1. Creo una automatización de "document move" en "post".
2. Utilizo la validación "PathContainsOnMove" (modificada por mi ya que la "PathContains" recordat que no captura bien la carpeta destino)
3. Utilizo la acción "RevokeKeyword"

Al hacer el "move" del documento el OpenKM genera un error del "Automatition".

Si ese mismo procedimiento lo realizamos con la acción "addKeyword" no hay problema alguna, funciona a la perfección.

Como ya os he comentado yo lo he solucionado utilizando la acción "scriptExecute" de esa forma funciona correctamente.
 #29075  by jllort
 
Tiene alguna mayúscula la palabra clave ? es la unica diferencia que veo entra la implementacion del addkeyword y el removekeyword, en esta url tienes el código fuente de esta parte, tu mismo lo puedes comprobar http://sourceforge.net/p/openkm/code/HE ... on/action/ me estraña mucho que el add funcione y el remove no. A no ser claro que intentes eliminar una keyword que no tiene el documento, cosa que obviamente hará que de un error.

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.