Subir via ftp al repositorio

cancel
Showing results for 
Search instead for 
Did you mean: 
mikah92
Member II

Subir via ftp al repositorio

Hola a todos , tengo la siguiente problemática: por vía ftp subo una carpeta con varios documentos al repositorio, mediante una regla aplico un .js a medida que va subiendo y quiero que después de subida cambiar el nombre de la carpeta. como logro cambiar el nombre sin que me afecte el proceso de subida?. puedo hacerlo después que termine?

5 Replies
angelborroy
Alfresco Employee

Re: Subir via ftp al repositorio

Quizá si compartes tu JS podamos entender mejor el problema.

Hyland Developer Evangelist
mikah92
Member II

Re: Subir via ftp al repositorio

Este es el .js el objetivo es establecer ciertas propiedades a las carpetas y documentos  dependiendo del nombre pero al finalizar quiero cambiar el nombre de la carpeta raíz.

if (document.type == "{http://www.alfresco.org/model/content/1.0}folder") {

    var contents = companyhome.childByNamePath("/X/Nomanclators/tipoExpediente");
    var bool = false;

    logger.log('******************** ESPECIALIZANDO CARPETA **********************');

    if ((document.name.indexOf('Ed.') && document.name.indexOf('5.')) != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de desarrollo";
        document.save();
        bool = true;
    } else
    if ((document.name.indexOf('Ed.') && document.name.indexOf('4.')) != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de desarrollo-4.0";
        document.save();
        bool = true;
    } else
    if ((document.name.indexOf('Ed.') && document.name.indexOf('.v.personalizaciones')) != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de proyecto de servicio para las personalizaciones";
        document.save();
        bool = true;
    } else
    if ((document.name.indexOf('Ed.') && document.name.indexOf('.v.portales')) != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de desarrollo para portales";
        document.save();
        bool = true;
    } else
    if (document.name.indexOf('Es.') != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de proyecto de servicio";
        document.save();
        bool = true;
    } else
    if (document.name.indexOf('Ec.') != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de componente";
        document.save();
        bool = true;
    } else
    if (document.name.indexOf('Em.') != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de migración";
        document.save();
        bool = true;
    } else
    if (document.name.indexOf('Ea.') != -1) {
        document.specializeType("gep:folder");
        document.properties["gep:kind"] = "Expediente de almacenes";
        document.save();
        bool = true;
    } else {

        var nom = document.parent.parent.properties["cm:name"];
        var nom = nom.split('v.');
        var tipo = nom[1];

        for (var i = 0; i < contents.children.length; i++) {
            var nomenclador = contents.children[i].properties["cm:name"];

            if (document.name == nomenclador) {
                document.specializeType("gep:folder");
                var nombreG = generarNombre(nomenclador, tipo);
                document.properties["gep:kind"] = nombreG;
document.properties["cm:descripcion"] = "Expediente de tipo: " + contents.children[i].properties["cm:name"];
                document.save();
                bool = true;
            }
        }
    }

    if (bool) {
        logger.log('******************** CARPETA ESPECILIZADA ' + document.name + ' ***');
        logger.log('******************** CARPETA GEP:KIND ' + document.properties["gep:kind"] + ' ***');
    } else {

        /* status.setCode(status.STATUS_BAD_REQUEST, "Verifique que el nombre de la carpeta coincida con el nombre del nuevo tipo de expediente ");
return; */
        logger.log("Verifique que el nombre de la carpeta coincida con el nombre del nuevo tipo de expediente ");

    }

}

if (document.type == "{http://www.alfresco.org/model/content/1.0}content") {

    logger.log('******************** ESPECIALIZANDO CONTENIDO **********************');

    document.specializeType("gep:content");
    document.setInheritsPermissions(false);
    document.save();
    logger.log('******************** CONTENIDO ESPECIALIZADO ' + document.properties["cm:name"] + ' *************');

    logger.log('******************** TIPIFICANDO CONTENIDO **********************');

    var contrains = Array();
    var array = companyhome.childByNamePath("/X/Nomanclators/tipo_de_documento");

    for (var i = 0; i < array.children.length; i++) {
        contrains[i] = array.children[i].properties["cm:name"];
    }

    var kindMatch,
        mayor = 0,
        nodeContent = document;
    if (nodeContent.specializeType("gep:content") || nodeContent.type == "{http://x/modules/file-proyect-management/1.0}content") {
        for (var j in contrains) {
            var contentName = omitirAcentos(new String(nodeContent.name).replace(/_/g, "").replace(/\s/g, "").replace(/-/g, "").replace(/\+/g, "").replace(/\(/g, "").replace(/\)/g, "").toLowerCase());

            var contrainsKind = omitirAcentos(contrains[j].replace(/_/g, "").replace(/\s/g, "").replace(/-/g, "").replace(/\+/g, "").replace(/\(/g, "").replace(/\)/g, "").toLowerCase());
            var count = lcs(contrainsKind, contentName).length;
            if (count > mayor) {
                mayor = count;
                kindMatch = contrains[j];
                logger.log("--- " + kindMatch + " ---");
            }
        }
        nodeContent.properties["gep:documentKind"] = kindMatch;
        nodeContent.save();
        logger.log( " - El tipo de doc de " + nodeContent.name + " es:\n");
        logger.log(" '" + nodeContent.properties["gep:documentKind"] + " '");
        logger.log(" ********************************************* \n");
    }

}

function omitirAcentos(text) {

}

function lcs(lcstest, lcstarget) {

}

function generarNombre(tipo, version) {}
angelborroy
Alfresco Employee

Re: Subir via ftp al repositorio

No puedes saber cuando finaliza.

A no ser que envíes un fichero vacío (p.e. "fin.txt") desde el FTP para marcarte de alguna manera que ese envío ha terminado.

Hyland Developer Evangelist
mikah92
Member II

Re: Subir via ftp al repositorio

Pero de que manera puedo garantizar que ese archivo.txt sea el ultimo en la cola del ftp

angelborroy
Alfresco Employee

Re: Subir via ftp al repositorio

No puedes, si no eres tú el que lo envía.

Hyland Developer Evangelist