Dataset no displayfields

Eu tenho um dataset customizado com web service que carrega os dados com base nos filtros passado para ele no fields. Ele captura o valor do campo do formuário e retorna os dados preenchendo uns 6 campos do formulário ao abrir o formulário. Só que gostaria de implementar o recurso no display fields para que ele ja abrisse com os campos preechidos. Alguém já fez isso ou tem exemplo disso usando form.setvalue no Displayfields com DatasetFactory?

11log1.jpg

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

Tentou colocar no script afterStateEntry e lá preencher? Exemplo:


  hAPI.setCardValue("txtNumeroProcesso",numProcess);
        hAPI.setCardValue("txtData",dataAtualFormatada());


        var cod1 = 1; 
        var cod2  = 2;

    var c1 = DatasetFactory.createConstraint("COD1", cod1 , cod1 , ConstraintType.MUST);
    var c2 = DatasetFactory.createConstraint("COD2", cod2, cod2, ConstraintType.MUST);
    var constraints   = new Array(c1,c2);

    var dataset         = DatasetFactory.getDataset("dsDATASET", null, constraints, null);
    var row             = dataset.values[0];

    hAPI.setCardValue("txtCampo1", row[0] );
    hAPI.setCardValue("txtCampo2", row[1] );

Como o dado vai prencher dinamicamente o formulario na atividade inicial eu precisava que ele abrisse ja preenchendo os dados no formulario. Eu faco no script js dentro do corpo, funciona , eu queria que ele fizesse como o displayfields que ja carrega as variaveis do fluig nos campos. Compreendeu?

Italo, nesse script afterStateEntry você tem os campos gerais do Fluig e pode preencher os campos do formulário também.

Adicionei um anexo com o script q tenho que carrega os dados do dataset, ele que eu queria carregar logo na atividade inicial.

isso mesmo, eu faço algo bem parecido buscando os itens de uma solicitação de compra, você pode fazer dentro do afterStateEntry, assim logo que for criado ele já executa e atualiza os campos.

Eu tentei fazer isso mas não deu certo. Quero evitar q essa função fique salvando o tempo todo quando abre a solicitação. A atividade incial e iniciada no RM pelo bordero entao ele avança automaticamente para a próxima atividade. Nessa fase eu queria ja ravar uma unica vez o valor do dataset q vem do web service.

Com o afterProcessCreate nao deu certo, quando ele capturou o ID do fluxo para levar para o parametro do dataset ele nao conseguiu retornar os valores. :frowning:

Ele deu esse erro: 2018-06-14 22:14:16,751 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-97) ERROR mensagem: O campo Nº do Borderô não foi informado ou não existe borderô no RM >> Tipo de Erro : Cannot find function has in object .

Coloquei o anexo do dois arquivos do dataset e do script de evento.

Note que na imagem do log ele captura passa pro dataset o filtro do valor do id, mas la no dataset ele pegar as informações da consulta que tem o parametro do ID do fluig.

Boa tarde, Italo.

Estava com um problema parecido com o seu.

Percebi que, para acessar datasets customizados, os filtros não funcionam. Dessa forma, implementei a comparação do campo do formulario com os valores do dataset customizado direto no código.

Meu displayFields ficou assim:


> var ds_revisao = DatasetFactory.getDataset("DS_REVISAO_OBITOS", null, new Array(), null);
>     for(var i = 0; i < ds_revisao.rowsCount; i++){             
>           var usuario = ds_revisao.getValue(i, "LOGIN");             
>           var local     = ds_revisao.getValue(i, "ESTABELECIMENTO");
>         if (usuario == user){
>             form.setValue('txtLocalObito', local);             
>                }
>    }

Atenciosamente.