Input de dados Dataset

Boa tarde, preciso de uma ajuda para entender a seguinte situação:

Resolvi criar um processo para solicitar manutenção de alguns equipamentos que temos em comodato. Por ser algo mais simples a para fins de aprender e praticar eu cheguei uma barreira que ainda não consegui entender a lógica para fazer funcionar…

Eu tenho um dataset avançado que consome uma Aplicação REST que estamos desenvolvendo para se comunicar com nosso ERP..

A dúvida é a seguinte qual a melhor maneira para pegar uma informação selecionada ou preenchida em um campo para ser passado nesse dataset para realizar a consulta. A minha necessidade seria no caso o dataset que está vinculado ao Agente Comercial servir de apoio para para o Dataset do Cliente eu tentei usar a hAPI e descobri que o lugar dela não é no dataset hehe.

Aqui seria aonde o valor deveria ser inputado, porém não consegui imaginar como ainda…

Lembrando, nesse caso em especifico tudo foi desenvolvido fora do ambiente do eclipse…. Desde o workflow até o formulário….

O Dataset não vai conseguir pegar os dados do processo/formulário normalmente.

Em geral a gente passa os dados pro dataset via constraints. Até podemos usar alguma API/WS no dataset para buscar os dados de algum lugar, mas ainda é mais comum passar a constraint.

Nessa Documentação de Dataset Avançado mostra como percorrer/recuperar os valores enviados por Constraints. Então o que sempre faço é um dataset avançado receber as informações e a partir delas executar algo, retornando os dados necessários.

Bruno, obrigado. A uma outra dúvida como eu fiz pelo Web e não pelo Eclise é possível passar essas constraints também?

É possível sim. Você fez pelo Editor de Datasets no próprio Fluig, certo?

Imagina esse dataset criado por lá, com o código teste0001. Ele espera receber uma constraint com o nome nomeDaConstraintEsperada.

Aí, no evento de formulário ou de processo, você chama esse dataset.

Exemplo num evento de processo:

function beforeStateEntry(sequenceId) {
    if (sequenceId != NUMERO_ATIVIDADE_PRA_EXECUTAR) {
        return;
    }

    var dataset = DatasetFactory.getDataset(
        'teste0001',
        null, // pega todos os campos. Mas no nosso caso é irrelevante, porque não tratamos isso no dataset
        [
            // O final value é irrelevante nesse caso, porque no dataset só pegamos o initial value
            // O mesmo com relação ao constraint type, porém ele é obrigatório enviar
            DatasetFactory.createConstraint(
                "nomeDaConstraintEsperada",
                hAPI.getCardValue("campo_do_formulario"),
                null,
                ConstraintType.MUST
            )
        ],
        null
    );

    if (dataset.rowsCount == 0) {
        // não retornou nada
        return;
    }

    var valorRetornado = dataset.getValue(0, "campoRetornado");

    // continua o código
}

Certo, a noite vou fazer uns teste…. Você faz mentoria?

Infelizmente ainda não trabalho com mentoria.

O tempo tá bem escasso devido ao trabalho + cursos externos, aí o tempo pra fazer algo extra tá muito curto pra fazer algo com qualidade.

Mas sempre que possível tento colaborar com algumas respostas :slight_smile:

@Leonardoo tem bastante conteudo de fluig na internet!
Tambem recomendo o site da TOTVS Academy.fluig.com!