Filtrar o segundo zoom de acordo com o que foi selecionado no primeiro usando reloadZoomFilterValues

Estou tentando utilizar um filtro no meu segundo zoom de acordo com o que for selecionado no primeiro zoom, mas não consigo fazer funcionar.

Exemplo, selecionei o estabelecimento 501, no segundo zoom deveria trazer somente o ultimo registro que é o único que pertence ao mesmo estabelecimento:

Print1.png

Os campos zoom:


<div class="row">
    <div class="form-group col-md-6">
        <label for="empresa">Estabelecimento:</label>
        <input
            type="zoom"
            id = "z_Estabelecimento"
            name="z_Estabelecimento"
            data-zoom="{
                'displayKey':'Estabelecimento',
                'datasetId':'dsEstabelecimento',
                'maximumSelectionLength':'1',
                'placeholder':'Escolha o estabelecimento',
                'fields':[
                    {
                       'field':'Empresa',
                       'label':'Empresa'
                    },{
                      'field':'Estabelecimento',
                      'label':'Estabelecimento',
                      'standard':'true'
                    }
                ]
             }"
        />
    </div>
    <div class="form-group col-md-6">
        <label for="centroCusto">Centro de Custo:</label>
        <input
            type="zoom"
            id = "z_CentroCusto"
            name="z_CentroCusto"
            data-zoom="{
                'displayKey':'centroCusto',
                'datasetId':'dsCentroCusto',
                'maximumSelectionLength':'1',
                'placeholder':'Escolha o centro de custo',
                'fields':[
                    {
                       'field':'Descricao',
                       'label':'Descrição'
                    },
                    {
                       'field':'Estabelecimento',
                       'label':'Estabelecimento',
                       'standard':'true'
                    },{
                      'field':'centroCusto',
                      'label':'Centro de Custo'                                  
                    }
                ]
             }"
        />
    </div>
</div>

Função reloadZoomFilterValues:


function setSelectedZoomItem(selectedItem) {

        if(selectedItem.inputId == "z_Estabelecimento"){
            $("#z_CentroCusto").val('');
            reloadZoomFilterValues("z_CentroCusto", "Estabelecimento," + selectedItem["Estabelecimento"]);
      }
    };

Dataset do primeiro zoom:


function createDataset(fields, constraints, sortFields) {

    //Cria as colunas
    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("DocumentID");
    dataset.addColumn("Empresa");
    dataset.addColumn("Estabelecimento");

    //Cria a constraint para buscar os formulários ativos
    var cst = DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST);
    var constraints = new Array(cst);

    var datasetPrincipal = DatasetFactory.getDataset("DSForm_Estabelecimento", null, constraints, null);

    for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
        var documentId = datasetPrincipal.getValue(i, "metadata#id");
        var documentVersion = datasetPrincipal.getValue(i, "metadata#version");

        //Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
        var c1 = DatasetFactory.createConstraint("tablename", "estab" ,"estab", ConstraintType.MUST);
        var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
        var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
        var constraintsFilhos = new Array(c1, c2, c3);

        //Busca o dataset
        var datasetFilhos = DatasetFactory.getDataset("DSForm_Estabelecimento", null, constraintsFilhos, null);

        for (var j = 0; j < datasetFilhos.rowsCount; j++) {
            //Adiciona os valores nas colunas respectivamente.
            dataset.addRow(new Array(
                    documentId,
                    datasetFilhos.getValue(j, "empresa"),
                    datasetFilhos.getValue(j, "estabelecimento")));
        }
    }

    return dataset;
}

Dataset do segundo zoom:


function createDataset(fields, constraints, sortFields) {

    //Cria as colunas
    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("DocumentID");
    dataset.addColumn("Empresa");
    dataset.addColumn("Estabelecimento");
    dataset.addColumn("centroCusto");
    dataset.addColumn("Descricao");

    var estabelecimento = '';
    if (constraints != null) {
        for (var i = 0; i < constraints.length; i++) {

            if (constraints[i].fieldName == "Estabelecimento") { 
                estabelecimento = constraints[i].initialValue.toString();
            }
        }
    }

    //Cria a constraint para buscar os formulários ativos
    var cst = DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST);
    //var cst2 = DatasetFactory.createConstraint("Estabelecimento", estabelecimento, estabelecimento, ConstraintType.MUST);
    var constraints = new Array(cst);

    var datasetPrincipal = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraints, null);

    for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
        var documentId = datasetPrincipal.getValue(i, "metadata#id");
        var documentVersion = datasetPrincipal.getValue(i, "metadata#version");

        //Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
        var c1 = DatasetFactory.createConstraint("tablename", "ccusto" ,"ccusto", ConstraintType.MUST);
        var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
        var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
        var constraintsFilhos = new Array(c1, c2, c3);

        //Busca o dataset
        var datasetFilhos = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraintsFilhos, null);

        for (var j = 0; j < datasetFilhos.rowsCount; j++) {
            //Adiciona os valores nas colunas respectivamente.
            dataset.addRow(new Array(
                    documentId,
                    datasetFilhos.getValue(j, "empresa"),
                    datasetFilhos.getValue(j, "estabelecimento"),
                    datasetFilhos.getValue(j, "centroCusto"),
                    datasetFilhos.getValue(j, "descricao")));
        }
    }

    return dataset;
}

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Depois de muito custo conseguir resolver, fiz as seguintes alteraçoes no segundo dataset



function createDataset(fields, constraints, sortFields) {

    //Cria as colunas
    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("DocumentID");
    dataset.addColumn("Empresa");
    dataset.addColumn("Estabelecimento");
    dataset.addColumn("centroCusto");
    dataset.addColumn("Descricao");

    var estabelecimento;

    //criar constraints
    if(constraints != null && constraints.length){
        for (var i = 0; i < constraints.length; i++) {
            if (constraints[i].fieldName == "Estabelecimento") { 
                estabelecimento = constraints[i].initialValue.toString(); 
            }
        }    
    }

    //Cria a constraint para buscar os formulários ativos
    var cst = DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST);
    var constraints = new Array(cst);

    var datasetPrincipal = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraints, null);

    for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
        var documentId = datasetPrincipal.getValue(i, "metadata#id");
        var documentVersion = datasetPrincipal.getValue(i, "metadata#version");

        //Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
        var c1 = DatasetFactory.createConstraint("tablename", "ccusto" ,"ccusto", ConstraintType.MUST);
        var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
        var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
        var c4 = DatasetFactory.createConstraint("Estabelecimento", estabelecimento, estabelecimento, ConstraintType.MUST);
        var constraintsFilhos = new Array(c1, c2, c3, c4);

        log.dir("TESTE " + constraintsFilhos) 

        //Busca o dataset
        var datasetFilhos = DatasetFactory.getDataset("DSForm_Centro_Custo", null, constraintsFilhos, null);

        for (var j = 0; j < datasetFilhos.rowsCount; j++) {
            //Adiciona os valores nas colunas respectivamente.
            dataset.addRow(new Array(
                    documentId,
                    datasetFilhos.getValue(j, "empresa"),
                    datasetFilhos.getValue(j, "estabelecimento"),
                    datasetFilhos.getValue(j, "centroCusto"),
                    datasetFilhos.getValue(j, "descricao")));
        }
    }

    return dataset; }