Dataset usando FluigAPI.getFolderDocumentService()

Implementação de um dataSet aonde perccorro um diretorio GED que contém várias subpasta dentro de subpasta para listar todos documento em um dataSet usando "fluigAPI.getFolderDocumentService().list()".A implementação de uma Dataset Jornalizado no onSync,apresenta um erro no método list() sendo quando utilizo dentro da estrutura createDataset funciona normalmente.Aproveitar qual melhor técnica para mitigar questão de performance com muitos registros do Dataset.

``` ``` /* CONSTANTES */ var FOLDER = "1"; var ARQUIVO = "2";

/* DEFINED STRUCT DATASET / function defineStructure() { log.info("-=|INICIO Estutura %|=-=|-");addColumn("documentoID"); addColumn("descricao");setKey(["documentoID"]); //Definição da Primary Key,tipo:ArrayaddIndex(["documentoID"]); // Criação de index para perfomace

}

/* CREATE DATASET JORNALIZADO / function onSync(lastSyncDate) { log.info("-=|INICIO DataSincronizado %|=-=| -");

try{

var dataset = DatasetBuilder.newDataset(); var pastaPai = 18965;

getSincDataset(dataset,pastaPai);

}catch(e){

log.info("-=||=-=|Erro Dataset dsSincronizado-=||=-=||=-"); log.info("-=||=-=||=- Linha: "+e.lineNumber); log.info("-=||=-=||=- MSG: "+e.toString()); }

return dataset;

}

/* CREATE DATASET JORNALIZADO */function getSincDataset(dataset,pastaPai) { log.info("-=|-INICIO DATATASET $%-|=- "+pastaPai);

var documents = fluigAPI.getFolderDocumentService().list(pastaPai), iterator = documents.iterator();

while (iterator.hasNext()) {

var document = iterator.next();

// Não quis exibir os deletados if (document.getDeleted() == "true") { continue; }

var documentType = document.getDocumentType();

if (documentType == DOCUMENT_TYPE_FOLDER) {

dataset.addOrUpdateRow([

document.getDocumentId(), document.getDocumentDescription() ]);

getSincDataset(dataset, document.getDocumentId()); continue; } log.info("**Dataset "+dataset); } return dataset; } ``` ```

Um exemplo bem simples de um dataset buscando todos os arquivos (somente os arquivos) de uma pasta e suas subpastas:


// Tipo do documento que define ser uma pasta
var DOCUMENT_TYPE_FOLDER = "1";

// Tipo do documento que define ser um documento normal
var DOCUMENT_TYPE_NORMAL = "2";

/**
 * Cria o dataset
 *
 * @param {string[]} fields
 * @param {Constraint[]} constraints
 * @param {string[]} sortFields
 */
function createDataset(fields, constraints, sortFields) {
    var dataset = DatasetBuilder.newDataset(),
        folderId = 1774;

    dataset.addColumn("DOCUMENT_ID");
    dataset.addColumn("DOCUMENT_DESCRIPTION");

    // folderId pode vir de uma constraint
    if (!folderId) {
        return dataset;
    }

    getDocuments(dataset, folderId);

    return dataset;
}

/**
 * Insere no dataset todos os documentos da pasta e sub-pastas
 *
 * @param {Dataset} dataset
 * @param {number} folderId
 */
function getDocuments(dataset, folderId) {
    var documents = fluigAPI.getFolderDocumentService().list(folderId),
        iterator = documents.iterator();

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

        // Não quis exibir os deletados
        if (document.getDeleted() == "true") {
            continue;
        }

        var documentType = document.getDocumentType();

        if (documentType == DOCUMENT_TYPE_FOLDER) {
            getDocuments(dataset, document.getDocumentId());
            continue;
        }

        if (documentType == DOCUMENT_TYPE_NORMAL) {
            dataset.addRow([
                document.getDocumentId(),
                document.getDocumentDescription()
            ]);
        }
    }
}

function onMobileSync(user) {}
function defineStructure() {}
function onSync(lastSyncDate) {}