• Auto Importación devuelve error

  • 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.
 #42168  by csanchez
 
Buenos días,

Soy nuevo con OpenKm, y estoy muy ilusionado con las posibilidades que me puede ofrecer.
Felicidades al equipo de OpenKM.

He instalado la versión Comunnity 6.3.1 desde el fichero openkm-6.3.1-community-linux-x64-installer.run, en un Ubuntu Server 16.04 y creo que la he hecho bien.

Ahora, quiero importar automáticamente ficheros en formato .PDF a una carpeta de OpenKM, y estoy intentando ejecutar el script que tenéis en http://wiki.openkm.com/index.php/Cronta ... e_importer, pero me devuelve un error, iIncluso lo estoy ejecutando desde la consoloa de Ubuntu con bsh.

¿Qué estoy haciendo mal?. Muchas gracias por adelantado.

El error es:

Evaluation Error: Sourced file: /home/administrador/download/ImportFromScanner2.bsh : Typed variable declaration : Attempt to resolve method: getInstance() on undefined variable or class name: DbSessionManager : at Line: 6 : in file: /home/administrador/download/ImportFromScanner2.bsh : DbSessionManager .getInstance ( )


El script es:
Code: Select all
import com.openkm.core.*;
import com.openkm.api.*;
import java.io.*;
import com.openkm.module.db.stuff.DbSessionManager;

String token = DbSessionManager.getInstance().getSystemToken();
OKMDocument document = OKMDocument.getInstance();
OKMFolder folder = OKMFolder.getInstance();

public void autoImport(String okmPath, File fldpath) {
  try {
    print("Scanning " + fldpath.getName() + "<br>");
    
    for (File file : fldpath.listFiles()) {
      print("Importing " + file.getName() + "<br>");
      
      try {
        if (file.isDirectory()) {
          try {
            folder.createSimple(token, okmPath + file.getName());
          } catch (ItemExistsException ie) {    
            print("folder already exists<br>");
            // Folder already exists - just ignore exception
          }
          
          autoImport( okmPath + file.getName() + "/", file);
        } else {
          // Check if file is still being written to
          long length = file.length();
          Thread.sleep(1000);
          if (file.length() > length) continue; // Skip file this time
          document.createSimple(token, okmPath + file.getName(), new FileInputStream(file));
        }
        
        print("Created " + okmPath + file.getName() + "<br>");
      } catch (Exception e) {
        print ("Exception:" + e + "<br>");
        
        // Something bad happened to prevent import. Skip to next file.
        continue;
      }
      
      file.delete();
    }
  } catch (Exception e) {
    print("Exception: " + e + "<br>");
  }
}

autoImport("/okm:root/Scans/", new File("/home/fom/scanner"));
 #42172  by jllort
 
Yo el import y la llamada la veo bien, de hecho la clase esta donde toca:
https://sourceforge.net/p/openkm/code/H ... nager.java

Mi recomendación es cortar el código hasta aqui a ver si esto aun te da error:
Code: Select all
import com.openkm.core.*;
import com.openkm.api.*;
import java.io.*;
import com.openkm.module.db.stuff.*;

String token = DbSessionManager.getInstance().getSystemToken();
print(token);
Si esto te funciona bien, ve ampliando el código y sino dinos cosas.
 #42173  by csanchez
 
Buenos días jllort y gracias por tu respuesta.

He ejecutado el script como me indicas y sigue devolviendo el mismo error.
Code: Select all
Evaluation Error: Sourced file: ./test.bsh : Typed variable declaration : Attempt to resolve method: getInstance() on undefined variable or class name: DbSessionManager : at Line: 6 : in file: ./test.bsh : DbSessionManager .getInstance ( )
Yo soy muy novato en bsh y linux, pero a mi me parece que el programa no reconoce la llamada a DbSessionManager.

No sé ni por donde empezar :-(
 #42174  by jllort
 
Lo he probado con una instalacion community 6.3.1 limpia y funciona perfectamente. Tienes que tener algo raro, para que este no te este funcionando. Seguro que estas ejecutando la ultima community 6.3.1 ?
 #42184  by csanchez
 
Buenos días jllort.

me ha surgido un proyecto que me absorberá buena parte de mi tiempo.

En cuanto tengan hueco retomo este tema y t cuento.

Gracias por tu ayuda.

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.