GED Fluig e Anexos de Processos

Bom dia Pessoal! tenho um fluxo hoje que salvo os anexos em documento dentro do GED em uma pasta estabelecida e possível eu colocar o nome da pasta e ela retorna o id? isso e feito via dataset?

segue código:

function beforeTaskSave(colleagueId,nextSequenceId,userList){

if(nextSequenceId == 41){

//var pasta =(form.getValue("frota"))

log.info("#### Gravar anexos do formulário na pasta"); var id_FolderProtocolo = (parseInt("00002"));

//ID da pasta onde quero gravar os anexos

//**GRAVAR ANEXOS NA PASTA CRIADA**// //PEGA ANEXOS DO FOMRULÁRIO

var calendar = java.util.Calendar.getInstance().getTime(); var docs = hAPI.listAttachments(); //Pega os anexos do processo for(var i=0;i<docs.size();i++){

var doc = docs.get(i); doc.setParentDocumentId(id_FolderProtocolo); doc.setExpires(false); doc.setCreateDate(calendar); doc.setInheritSecurity(true); doc.setTopicId(1); doc.setUserNotify(false); doc.setValidationStartDate(calendar); doc.setVersionOption("0"); doc.setUpdateIsoProperties(true);

// GRAVA DOCUMENTO NO ECM hAPI.publishWorkflowAttachment(doc); log.info("#### Gravou anexo "+ doc.getDocumentId() +" do formulário na pasta"); }

Não tenho certeza se eu entendi direito o que você precisa, mas acho que você quer definir o id_FolderProtocolo pelo nome da pasta, né?

Nesse caso você pode rodar um Dataset para verificar se a pasta existe e retornar o id. Algo +- assim:


function getFolderID(name, parent) {
    let doc = DatasetFactory.getDataset(
        'document',
        ['documentPK.documentId'],
        [
            DatasetFactory.createConstraint('documentType', 1, 1, ConstraintType.MUST),
            DatasetFactory.createConstraint('documentDescription', name, name, ConstraintType.MUST),
            DatasetFactory.createConstraint('parentDocumentId', parent, parent, ConstraintType.MUST)
        ],
        null);

    if (doc.rowsCount < 1)
        return null;

    return doc.getValue(0, 'documentPK.documentId');
}

E você pode usar assim:


//0 é a pasta Raiz do Fluig, dessa forma o Dataset só procura dentro de uma única pasta,
//e não corremos o risco de ter um conflito de nome
var id_FolderProtocolo = getFolderID('minha_pasta', 0);

if (!id_FolderProtocolo)
    //ERRO