03-15-2017 09:01 AM
Me gustaría agregar a una carpeta una regla que verifique que el nombre del fichero que voy a cargar incluya el nombre corto del site en el que está dicha carpeta.
En caso que no sea así quiero evitar la carga del fichero y dar un mensaje de error al usuario.
Supongo que es un requisito bastante común... ¿alguien lo ha resuelto?
O alguien tiene idea de dónde puedo buscar.
Muchas gracias.
03-20-2017 05:08 AM
Quizá podrías utilizar "logger.log" para ver qué valor tienen las variables en ese punto. O montarte un caso de prueba con la JavaScript console (https://github.com/share-extras/js-console)
03-15-2017 04:36 PM
Hola:
Solo tienes que crear una regla cuando se añaden documentos que cambie el nombre del documento con el nombre del site. No parece difícil con un script de javascript API que se aplique a la regla.
Pero no entiendo bien la segunda frase, la regla se aplica si o si. La regla es un postproceso y se aplica tras la subida del documento. Si te da un error (por ejemplo, porque ya existe el documento) podrías llegar a capturar el error en el javascript (dentro de un try-catch) y llegar a borrar el documento. Pero no creo que puedas mandar un mensaje al usuario.
Sobre si es un requisito común te diría que de primeras no le veo mucha utilidad. El nombre corto del site ya está en el path o en la url de documento. El buscador ya tiene un contexto de Sitio, e incluso un filtro por Sitio como faceta.
Saludos.
--C.
03-16-2017 02:00 AM
Muchas gracias César.
Te explico:
No se trata de cambiarle el nombre al documento, se trata de "comprobar" que el nombre que tiene el documento que se quiere cargar ya "incluye" dentro de sí el nombre corto del site.
Por ejemplo si estoy intentando cargar el documento "PRU002-Contrato.txt" en el sitio "PRU002" la carga se hace, pero si el mismo documento se intenta cargar en el sitio "PRU001" se impide la carga.
No tengo tan claro que la regla sea exactamente un postproceso, de hecho si una regla da un error ni se carga el documento ni se ejecutan las siguientes reglas asociadas a su carga (cosa que me viene muy bien para lo que estoy buscando).
Más o menos lo he conseguido pero tengo dos problemas:
1. No consigo encontrar la forma de obtener el nombre corto del site antes de que el documento se cargue (no me sirve "").
2. Fuerzo un error el el script, pero no consigo que el usuario vea un mensaje.
Si se te ocurre algo por favor avísame.
Un saludo.
03-16-2017 01:59 PM
El nombre corte del site puedes conseguirlo así:
document.siteShortName
No puedes hacer que el usuario vea el mensaje lanzado por la API JavaScript. Creo que solo es posible si se modifica Alfresco, lo cual no es muy recomendable.
03-16-2017 03:40 PM
Hola Ángel:
Eso lo he probado y no "trae" el nombre del Site, creo que puede deberse a que en realidad todavía no ha incorporado el documento.
¿Sabes si puedo obtenerlo desde las propiedades de un objeto que no sea el documento?
Muchas gracias, un saludo.
03-18-2017 05:20 AM
Si no trae el nombre del Site es porque no estás incorporando el archivo a una carpeta de Site.
03-19-2017 12:01 PM
Hola Ángel,
Teóricamente tienes razón, pero sí que lo estoy intentando cargar en una carpeta de la biblioteca de documentos del portal.
Digo que tienes razón porque de echo estoy utilizando "document.siteShortname" en otros JS (en reglas de esa misma carpeta) y funcionan.
Te doy más detalles por si puedes ayudarme a encontrar el problema.
Lo que se me ocurrió, para evitar la incorporación de documentos que no incluyan el nombre del portal fue poner en la carpeta una regla inicial (hay dos más luego) que verifica eso y, en caso de no coincidir, intenta una copia que da error.
Con esto consigo que el documento no se cargue y que las dos reglas siguientes no se ejecuten (justo lo que busco).
Lamentablemente el mensaje no dice cual es el error y solo permanece unos segundos, pero me vale.
Ahora bien, el JS que ejecuta esa primera regla es el siguiente:
var documento = document.name.substr(6,6);
var portal = "ECI120";
if (documento !== portal) {
var origen = companyhome.childByNamePath("algoquenoexiste");
var destino = companyhome.childByNamePath("kkkkkkk");
var accion = origen.copy(destino, true);}
Con esto si intento cargar un documento que no tenga ECI120 en las posiciones adecuadas se intenta hacer una copia que falla y el documento no se carga, en cambio si tiene ECI120 en las posiciones adecuadas se carga perfectamente.
El nombre corto del portal es ECI120 (comprobado porque en otras reglas lo pongo dentro de mensajes de correo y estos lo muestran bien).
Ahora bien, si en ese JS reemplazo "ECI120" por document.siteShortname el efecto es como si el valor no se cargara en la variable.
¿Se te ocurre cuál puede ser el problema?
La verdad es que ya no sé qué más buscar.
Muchas gracias por tu ayuda.
Un saludo.
03-20-2017 05:08 AM
Quizá podrías utilizar "logger.log" para ver qué valor tienen las variables en ese punto. O montarte un caso de prueba con la JavaScript console (https://github.com/share-extras/js-console)
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.