Page 1 of 1

Fallo en ejecución de scripts

PostPosted:Fri Mar 30, 2012 2:08 pm
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!

Re: Fallo en ejecución de scripts

PostPosted:Sat Mar 31, 2012 8:06 am
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.

Re: Fallo en ejecución de scripts

PostPosted:Mon Apr 02, 2012 8:57 am
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.

Re: Fallo en ejecución de scripts

PostPosted:Thu Apr 05, 2012 9:21 am
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 )

Re: Fallo en ejecución de scripts

PostPosted:Wed Apr 11, 2012 10:13 am
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!

Re: Fallo en ejecución de scripts

PostPosted:Fri Apr 13, 2012 7:07 am
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.

Re: Fallo en ejecución de scripts

PostPosted:Thu Aug 06, 2020 1:26 am
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.

Re: Fallo en ejecución de scripts

PostPosted:Sat Aug 08, 2020 8:47 am
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 )