• como saber a que directorio pertenece un archivo

  • 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.
 #39683  by diehx
 
Hola que tal? abro este hilo porque hice un automation para cambiar el nombre de los archivos que subo a openkm con un numero secuencial. funciona bien, ya esta probado. Ahora quiero discriminar el hecho de que lo haga para unas carpetas/directorios pero a otros no lo haga. he usado pathutil.getparent o file.getparentfile para saber en que directorio se esta guardando el archivo pero no me regresa el directorio y asi indicarle a travez de un IF para que no realice la operacion si esta en ciertas carpetas. Por su ayuda de antemano gracias
 #39695  by jllort
 
En el automation tienes el uuid del documento. Lo primero es obtener el path de ese uuid, despues sacamos la parte que se corresponde con la carpeta y finalmente el nombre de la carpeta.
Code: Select all
Strind docPath = OKMRepository.getInstance().getNodePath (null, uuid);
String fldPath = PathUtils.getParent(docPath);
String fldName = PathUtils.getName(fldPath);
Url relacionadas
http://doxygen.openkm.com/openkm/d0/dd8 ... older.html
http://doxygen.openkm.com/openkm/d0/dd8 ... older.html
http://doxygen.openkm.com/openkm/d8/d62 ... utils.html
 #39723  by diehx
 
Gracias por el dato, lo verifique y funciona, pero no me doy cuenta que estoy haciendo mal, este es mi codigo para evitar entrar al script en caso de estar en alguna de esas dos carpetas que son nominas y mantenimiento.

//La siguiente linea no valida, que estoy haciendo mal? <<<>>>
if (fldName != "nominas" and fldName != "mantenimiento")

No hace la validacion y deja el nombre tal cual en cualquier carpeta sin discriminar, no pasa del IF
Enseguida el codigo completo del script
Code: Select all
import com.openkm.api.OKMPropertyGroup;
import com.openkm.api.OKMRepository;
import java.util.*;
import com.openkm.dao.DatabaseMetadataDAO;
import com.openkm.api.OKMDocument;

import com.openkm.util.PathUtils;
import com.openkm.util.FileUtils;

String grpName = "okg:autonumber";
String table = "autonumber";
String sequenceName = "doc_id";
String docPath = OKMRepository.getInstance().getNodePath (null, uuid);
String fldPath = PathUtils.getParent(docPath);
String fldName = PathUtils.getName(fldPath); 

//La siguiente linea no valida, que estoy haciendo mal?	<<<>>>
if (fldName != "nominas" and fldName != "mantenimiento") 
{
// Add Group
OKMPropertyGroup.getInstance().addGroup(null, docPath, grpName);
 
// Setting properties
String id = String.valueOf(DatabaseMetadataDAO.getNextSequenceValue(table, sequenceName));
 
switch (id.length()) {
    case 1:
    	id = "20150000" + id;
    	break;
    case 2:
    	id = "2015000" + id;
    	break;
    case 3:
    	id = "201500" + id;
    	break;
    case 4:
    	id = "20150" + id;
    	break;
    case 5:
    	id = "2015" + id;
    	break;

}
 
Map map = new HashMap();
map.put("okp:autonumber.id",id);
OKMPropertyGroup.getInstance().setPropertiesSimple(null, docPath, grpName, map);

// rename document
String newName = id +  "." + FileUtils.getFileExtension(PathUtils.getName(docPath));
OKMDocument.getInstance().rename(null, docPath, newName);
}
 #39806  by diehx
 
Lo siento, jejeje, ya vi el error, los operadores logicos son caracteres y no palabras, AND es && y OR es ||
es el problema de estar ocupando mas de un lenguaje a la vez. gracias, saludos :D

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.