• Fallo en ejecución de scripts

  • 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.
 #15026  by rcarracedo
 
Hola de nuevo:

Al intentar ejecutar el script de ejemplo de cómo renombrar automáticamente un documento me da el siguiente error:

Error in method invocation: Static method getParent( java.lang.String ) not found in class'com.openkm.util.FileUtils'

El script es este:
Code: Select all
String parent = com.openkm.util.FileUtils.getParent(eventNode.getPath());
session.move(eventNode.getPath(), parent+"/renamed_document.doc");
session.save();
Parece que el sistema no puede encontrar la clase FileUtils. No tengo muy claro, ¿es necesario instanciar esta clase o sería un bug del programa?

Saludos!
 #15038  by pavila
 
Depende de la versión de OpenKM que estés usando. Con un OpenKM 5.1.9 debería funcionar bien pq tiene esa clase con ese método.
 #15052  by rcarracedo
 
Estoy con la última nightly build, y al ejecutarse el siguiente script:
Code: Select all
print ("---------->" + com.openkm.util.FileUtils.getParent(eventNode.getPath()));
que tengo en el repositorio asociado a una carpeta, me da el siguente error:
Code: Select all
10:51:11,494 WARN  [BaseScriptingModule] Sourced file: inline evaluation of: ``//String parent =   print ("---------->" + com.openkm.util.FileUtils.getParent(e . . . '' : Error in method invocation: Static method getParent( java.lang.String ) not found in class'com.openkm.util.FileUtils'
Sourced file: inline evaluation of: ``//String parent =   print ("---------->" + com.openkm.util.FileUtils.getParent(e . . . '' : Error in method invocation: Static method getParent( java.lang.String ) not found in class'com.openkm.util.FileUtils' : at Line: 2 : in file: inline evaluation of: ``//String parent =   print ("---------->" + com.openkm.util.FileUtils.getParent(e . . . '' : com .openkm .util .FileUtils .getParent ( eventNode .getPath ( ) )
sin embargo, si hago
Code: Select all
print ("---------->" + eventNode.getPath());
Sí que funciona.
 #15084  by jllort
 
Te esta diciendo que este método no existe en esa clase Static method getParent( java.lang.String ) puede ser que el método esté en una versión de OpenKM superior a la actual o que se haya hecho alguna refactorización, he comprobado la clase y ahora mismo este método - getParent - no existe.

Utiliza la clase Util.java en com.openkm.frontend.client.util

Y por si no te has bajado el código fuente, hecha un vistazo a http://doxygen.openkm.com/5.1.x/ ( por lo que veo no esta actualizada con respecto al nighlty build )
 #15158  by rcarracedo
 
Hola jllort:

Efectivamente, ahora con:
Code: Select all
print ("---------->" + com.openkm.frontend.client.util.Util.getParent(eventNode.getPath())); 
funciona correctamente.

Desconozco cómo funciona el Doxigen. ¿No se puede poner para que se actualice en función del código fuente cada día? De todas formas me ha servido para ver cómo localizar las funciones en el código de sourceforge.

Gracias!
 #15187  by jllort
 
Creo que el doxygen lo regeneramos manualmente, lo mirare, en cualquier caso solo se debe regenerar cuando sacamos una release, sino puede haber lio y esta es la razón por la que creo que se hace manualmente.
 #50329  by oscasand
 
Buenas noches. Soy nuevo en OpenKm. Tengo la version 6.3.9 CE en Windows 10.
Estoy estudiando el tema de scripting. Pero varios métodos que aparecen en la documentación, no son reconocidos.
Por ejemplo:
Script 1
https://docs.openkm.com/kcenter/view/ok ... -file.html
Error 1
Code: Select all
bsh.EvalError: Sourced file: inline evaluation of: ``import java.io.FileReader; import java.io.Reader; import java.util.Iterator; . . . '' : Error in method invocation: [color=#800040]Method getDocument() not found in class'com.openkm.bean.QueryResult'[/color] : at Line: 59 : in file: inline evaluation of: ``import java.io.FileReader; import java.io.Reader; import java.util.Iterator; . . . '' : queryResult .getDocument ( )
Script 2
Code: Select all
package com.openkm;
import java.util.Map;
import com.openkm.api.OKMPropertyGroup;
        try {           
            Map properties = OKMPropertyGroup.getInstance().getPropertiesSimple(null,"/okm:root/doc1.txt", "okg:metadata");
            for (String key : properties.keySet()) {
                System.out.println(key + ":" + properties.get(key));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
Error 2
Code: Select all
bsh.EvalError: Sourced file: inline evaluation of: ``package com.openkm; import java.util.Map; import com.openkm.api.OKMPropert . . . '' : Typed variable declaration : Error in method invocation: [color=#800040]Method getPropertiesSimple(null, java.lang.String, java.lang.String) not found in class'com.openkm.api.OKMPropertyGroup[/color]' : at Line: 8 : in file: inline evaluation of: ``package com.openkm; import java.util.Map; import com.openkm.api.OKMPropert . . . '' : .getPropertiesSimple ( null , "/okm:root/doc1.txt" , "okg:metadata" ) 
Como se puede resolver esto?
De antemano muchas gracias.
 #50339  by jllort
 
En lugar de getDocument() tienes que utilizar getNode(). Esto es debido a una modificación que se ha realizado en versiones succesivas de OpenKM ( he actualizado esta sección de la documentación ).

Sobre el método
Code: Select all
Map properties = OKMPropertyGroup.getInstance().getPropertiesSimple(null,"/okm:root/doc1.txt", "okg:metadata");
No existe en la versión community, tienes que utilizar el getProperties() ( también he actualizado esta sección de la documentación https://docs.openkm.com/kcenter/view/ok ... tiesSimple )

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.