Retorno de dataset inválido

alguém sabe porque pode estar dando retorno de dataset invalido?

"Retorno de dataset inválido, verifique sua implementação.: com.datasul.technology.webdesk.dataset.business.DatasetException: Retorno de dataset inválido, verifique sua implementação."


function defineStructure() {

    addColumn("IDPROCESSO");
    addColumn("ID");
    addColumn("FILIAL");
    addColumn("SOLICITANTE");
    addColumn("SETOR");
    addColumn("CADASTRAR");
    addColumn("PRODUTO");
    addColumn("DESCRICAO");
    addColumn("QUANTIDADE");
    addColumn("UNIDADE");
    addColumn("NCM");
    addColumn("CONTACONTABIL");
    addColumn("TIPO");
    addColumn("ARMAZEM");
    addColumn("CENTROCUSTO");
    addColumn("URGENCIA");
    addColumn("OBSERVACAO");
    setKey(["IDPROCESSO"]);
    addIndex(["IDPROCESSO"]);
    //addIndex(["IDPROCESSO", "ID", "PRODUTO"]);

}

function onSync(lastSyncDate) {
    log.info("=======================> ds_produtosSemCot - INICIO");

    try {
        var dataset = DatasetBuilder.newDataset();

        var datasetProd = DatasetFactory.getDataset("ds_produtosSolicitacao", null, null, null);

        for (var i = 0; i < datasetProd.rowsCount; i++) {

            var dsID = datasetProd.getValue(i, "ID");
            var dsPROD = datasetProd.getValue(i, "PRODUTO");

            var c1 = DatasetFactory.createConstraint("PRODUTO", dsPROD, dsPROD, ConstraintType.MUST);
            var c2 = DatasetFactory.createConstraint("PRODSOLICT", dsID, dsID, ConstraintType.MUST);
            var constraintsCot = new Array(c1, c2);

            var dataSetCot = DatasetFactory.getDataset("ds_consultaItensCot", null, constraintsCot, null);


            if (dataSetCot.rowsCount == 0) {
                dataset.addRow(
                    new Array(
                        datasetProd.getValue(i, "IDPROCESSO"),
                        datasetProd.getValue(i, "ID"),
                        datasetProd.getValue(i, "FILIAL"),
                        datasetProd.getValue(i, "SOLICITANTE"),
                        datasetProd.getValue(i, "SETOR"),
                        datasetProd.getValue(i, "CADASTRAR"),
                        datasetProd.getValue(i, "PRODUTO"),
                        datasetProd.getValue(i, "DESCRICAO"),
                        datasetProd.getValue(i, "QUANTIDADE"),
                        datasetProd.getValue(i, "UNIDADE"),
                        datasetProd.getValue(i, "NCM"),
                        datasetProd.getValue(i, "CONTACONTABIL"),
                        datasetProd.getValue(i, "TIPO"),
                        datasetProd.getValue(i, "ARMAZEM"),
                        datasetProd.getValue(i, "CENTROCUSTO"),
                        datasetProd.getValue(i, "URGENCIA"),
                        datasetProd.getValue(i, "OBSERVACAO")
                    )
                );
            };
        };

        log.info(dataset);

    } catch(err) {
        log.info("=======================> ds_produtosSemCot  - ERRO: " + err);
    } finally {
        log.info("=======================> ds_produtosSemCot - FINALLY");
        return dataset;
    }
}

Olá, essa mensagem é o que sai no Catch?

Pode testa chamar os datasets ds_produtosSolicitacao e ds_consultaItensCot via console do navegador, e ver se eles retornam corretamente. Já esse tipo de mensagem quando o return de algum dos datasets apresenta problemas.

Tomaria cuidado com a coluna “ID” na definição da estrutura addColumn("ID"); ela deve ser uma palavra reservada e pode impedir a sincronia desse dataset.