• Crontab

  • 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.
 #30693  by gcosta
 
Buenas tardes, me encuentro con una cosa un poco estaña.

Tengo un script que ejecuto en el crontab cada hora. Lo que hace el script, és importar los documentos de una carpeta i iniciar un Workflow sobre ese documento.

Bien, el problema esta en que si el script se ejecuta automaticamente importa el documento pero no inicia el Workflow i no elimina el documento de la carpeta.

En cambio si yo voy al apartado de crontab i le doy al relampago para forzar la ejecución de ese script funciona perfectamente! Es decir, importa el documento, elimina el documento de la carpeta origen e inicia el Workflow.

A que puede ser debido?

Gracias.
 #30694  by gcosta
 
Buenas tardes me autoresponde por si ha alguien le puede servir de ayuda.

Resulta que cuando iniciava el Workflow con runProcessDefinition le pasava como parametro de usuario que ejecuta "null" y no "token" por lo que aquí es script se detenia por eso no iniciava Workflow ni eliminava el documento.

Al ejecutar el Crontab yo imagino que substituia el valor "null" por el de mi usuario. Es correcto eso que digo?

Gracias.
 #30704  by jllort
 
No, el crontab puedes ejecutarlo desde la administración, con lo que le pasara el token del administrador o se puede ejecutar por el planificador de tareas, con lo que le llegará el token del sistema. Mira te paso una plantilla para el crontab:
Code: Select all
package com.openkm;

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

import com.openkm.module.db.stuff.DbSessionManager;

public class CronTabTest {
	private static Logger log = LoggerFactory.getLogger(CronTabTest.class);

        // OpenKM Older
	public static void main(String[] args) {
		System.out.println(cronTask(new String[] { DbSessionManager.getInstance().getSystemToken() }));
	}
	
        // OpenKM 6.2+ 6.3
	public static String cronTask() {
		log.info("entrada");
		return cronTask(DbSessionManager.getInstance().getSystemToken());
	}
	
	// OpenKM 6.4.2+
	public static String cronTask(String systemToken) {
		return "mail body here";
	}
}

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.