Boa Tarde,
Gostaria de saber se é posssivel e no caso de como fazer um Dataset com os valores de outros 2 Dataset's.
Exemplo:
Possuo o Código abaixo puxando o valor apenas de um Dataset chamado (PrimeiroDataset) e filtrando atraves de Constraints.
function createDataset(fields, constraints, sortFields) {
log.info("##########:"+constraints);
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("Empresa");
dataset.addColumn("Fornecedor");
dataset.addColumn("NotaFiscal");
dataset.addColumn("DataLancamento");
dataset.addColumn("DataVencimento");
dataset.addColumn("Lanc Financeiro");
dataset.addColumn("Nr Solicitacao");
var returnFields = new Array("drop_emp", "numfornecedor", "numnf", "datalancFiltro","dataFiltro", "nmsolic");
var datasetInterno = DatasetFactory.getDataset("ds_form_Lancamento_NF", returnFields, constraints, null);
for (var i = 0; i < datasetInterno.rowsCount; i++){
dataset.addRow(new Array(datasetInterno.getValue(i, "drop_emp"), datasetInterno.getValue(i, "numfornecedor"), datasetInterno.getValue(i, "numnf"), datasetInterno.getValue(i, "datalancFiltro"),datasetInterno.getValue(i, "dataFiltro"), datasetInterno.getValue(i, "chkboxfinanc"), datasetInterno.getValue(i, "nmsolic"))); }
return dataset;
}
Nesse primeiroDataset, possuo uma coluna chamada "documentId", preciso cruzar o resultado dessa coluna "documentId"(primeiroDataset) com outro Dataset (workflowProcess), na qual o valor de "documentId"(primeiroDataset), se encontra na coluna "cardDocumentId"(workflowProcess), mas preciso retornar o valor da coluna "workflowProcessPK.processInstanceId"(workflowProcess).
Espero ter conseguido explicar corretamente.
Att.
Boa tarde Carlos,
vc cruzaria esses dados passando eles nas constraints das consultas:
function createDataset(fields, constraints, sortFields) {
log.info("##########:"+constraints);
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("Empresa");
dataset.addColumn("Fornecedor");
dataset.addColumn("NotaFiscal");
dataset.addColumn("DataLancamento");
dataset.addColumn("DataVencimento");
dataset.addColumn("Lanc Financeiro");
dataset.addColumn("Nr Solicitacao");
var returnFields = new Array("drop_emp", "numfornecedor", "numnf", "datalancFiltro","dataFiltro", "documentId");
var datasetInterno = DatasetFactory.getDataset("ds_form_Lancamento_NF", returnFields, constraints, null);
for (var i = 0; i < datasetInterno.rowsCount; i++){
var docId = datasetInterno.getValue(i, "documentId");
var cdi = DatasetFactory.createConstraint("cardDocumentId", docId, docId, ConstraintType.MUST);
var wpConstraints = new Array(cdi);
var wpReturnFields = new Array("workflowProcessPK.processInstanceId");
var datasetWP = DatasetFactory.getDataset("workflowProcess", wpReturnFields, wpConstraints, null);
var processInstanceId = datasetWP.getValue(0, "workflowProcessPK.processInstanceId");
dataset.addRow(new Array(datasetInterno.getValue(i, "drop_emp"), datasetInterno.getValue(i, "numfornecedor"), datasetInterno.getValue(i, "numnf"), datasetInterno.getValue(i, "datalancFiltro"),datasetInterno.getValue(i, "dataFiltro"), datasetInterno.getValue(i, "chkboxfinanc"), processInstanceId));
}
return dataset;
}
Diogo, muito agradecido pela ajuda, funcionou, porém agora dependendo do valor das constraints ele da o erro “TypeError: Cannot read property ‘length’ of undefined”.
Diogo, consegui arrumar aqui. Apenas adicionei um outro laço FOR, assim sendo o código ficou da seguinte maneira.
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("Empresa");
dataset.addColumn("Fornecedor");
dataset.addColumn("NotaFiscal");
dataset.addColumn("DataLancamento");
dataset.addColumn("DataVencimento");
dataset.addColumn("Lanc Financeiro");
dataset.addColumn("Nr Solicitacao");
var returnFields = new Array("drop_emp","numfornecedor","numnf","datalancFiltro","dataFiltro","chkboxfinanc","documentid");
var datasetInterno = DatasetFactory.getDataset("ds_form_Lancamento_NF", returnFields, constraints, null);
for (var i = 0; i < datasetInterno.rowsCount; i++){
var docId = datasetInterno.getValue(i, "documentid");
var wpConstraints = new Array(DatasetFactory.createConstraint("cardDocumentId", docId, docId, ConstraintType.MUST));
var wpReturnFields = new Array("workflowProcessPK.processInstanceId");
var wpDataset = DatasetFactory.getDataset("workflowProcess", wpReturnFields, wpConstraints, null);
for (var j = 0; j < wpDataset.rowsCount; j++){
var processInstanceId = wpDataset.getValue(j, "workflowProcessPK.processInstanceId");
}
dataset.addRow(new Array(datasetInterno.getValue(i, "drop_emp"), datasetInterno.getValue(i, "numfornecedor"), datasetInterno.getValue(i, "numnf"), datasetInterno.getValue(i, "datalancFiltro"),datasetInterno.getValue(i, "dataFiltro"), datasetInterno.getValue(i, "chkboxfinanc"), processInstanceId));
}
return dataset;
}