Recuperar todos os documentos de uma pasta do ECM

Bom dia pessoal,

Necessito listar em uma tela uma lista de documentos de uma pasta no ECM para download.

Mas creio que para isso preciso saber dos ID’s dos documentos para que eu consiga gerar um link de download.

Existe uma API para isso? Onde eu passaria o título da pasta e a partir de então receberia como retorno um array de objetos com todos os códigos e nomes dos documentos contidos naquela pasta.

Olá precisa montar uma consulta q que busque a listagem da tabela “DOCUMENTO” e usar o link

seu site fluig…/portal/p/1/ecmnavigation?app_ecm_navigation_card=<numero do documento (coluna NR_DOCUMENTO)>

Uso isso para relatorios customizados do fluig onde lista processos e anexos do processo

1 curtida

Eu fiz um dataset pra fazer essa listagem de documentos de um diretório. Com um pouco de adaptação dá pra reutilizar pro seu caso.

/**
 * Retorna os documentos de um diretório indicado pela constraint folderId
 *
 * @param {string[]} fields Campos Solicitados
 * @param {Constraint[]} constraints Filtros
 * @param {string[]} sorts Campos da Ordenação
 * @returns {Dataset}
 */
function createDataset(fields, constraints, sorts) {
    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("folderId");
    dataset.addColumn("id");
    dataset.addColumn("description");
    dataset.addColumn("url");

    var folderId = getFolderIdFromConstraints(constraints);

    if (!folderId) {
        return dataset;
    }

    var folderService = fluigAPI.getFolderDocumentService();
    var documentService = fluigAPI.getDocumentService();

    var list = folderService.list(folderId);
    var it = list.iterator();

    while (it.hasNext()) {
        var document = it.next();

        dataset.addRow([
            folderId,
            document.getDocumentId(),
            document.getDocumentDescription(),
            documentService.getDownloadURL(document.getDocumentId())
        ]);
    }

    return dataset;
}

/**
 * Pega o ID do diretório
 *
 * @param {Constraint[]} constraints Filtros
 * @returns {number}
 */
 function getFolderIdFromConstraints(constraints) {
    for (var i = 0; i < constraints.length; ++i) {
        if (constraints[i].fieldName.toLowerCase() == "folderid") {
            return parseInt(constraints[i].initialValue);
        }
    }

    return 0;
}

2 curtidas

Consegui consultar via JDBC os dados no banco.

Como o consumo será via uma página pública, creio que agora terei que consumir o dataset autenticando via OAuth ou algo do tipo…

1 curtida

Eu li Documento na pasta ECM e minha cabeça já vai pra arquivo. Eu ainda não me acostumei que tudo é documento, indiferente se é um arquivo ou um registro de formulário, hehehe.

1 curtida

@Bruno_Gasparetto Será que existe uma API pública (consumindo de fora do fluig através de uma autenticação) para esses documento de uma pasta?

Bem provável que possa usar a ECMFolderService pra isso. Aí seria só fazer a chamada SOAP pelo sistema que deseja.

1 curtida