Page 1 of 1

Crontab

PostPosted:Thu Dec 11, 2014 4:09 pm
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.

Re: Crontab

PostPosted:Thu Dec 11, 2014 4:27 pm
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.

Re: Crontab

PostPosted:Fri Dec 12, 2014 6:03 pm
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";
	}
}