Listar solicitações ativas e canceladas no dataset

Qual a melhor forma de pesquisar no dataset interno do formulário, ou em outro(s) dataset(s), quais as solicitações abertas/finalizadas de um processo?

Preciso pesquisar se determinado valor de um campo já foi preenchido anteriormente em outras solicitações, não contando as solicitações canceladas, somente as que ainda estão abertas ou foram finalizadas corretamente.

Boa tarde Victor,

no dataset “workflowProcess” tem uma coluna chamada “status” nela vc vai encontrar os seguintes valores:
0 = Em Aberto;
1 = Cancelado;
2 = Finalizado;

já que vc quer pegar as informações do que já foram finalizadas filtra pelo 2.

2 curtidas

Rodrigo, obrigado pela resposta.

Realmente, por essa coluna eu consigo saber só as solicitações abertas e finalizadas. Mas aí agora eu teria que saber quais solicitações tem um valor X em um campo.

Pra isso eu ia ter que pesquisar todos os documentId do dataset interno do formulário, e filtrar o workflowProcess com esses ids pra descobrir quais estão abertos/finalizados?

Que trampo rs

Realmente é um trampinho chato, o que eu faço para incurtar a procura é sempre quando crio um Processo, é criar um campo “hidde” que recebe o id do processo, assim que ele é criado.

function afterProcessCreate(processId){
    hAPI.setCardValue("numProcess", processId);
}

assim quando quero procurar algum campo em um processo, eu só cruzo as informações do dataset “workflowProcess” com o do formulário.

3 curtidas

Essa solução de salvar o número do processo salva muito na hora das consultas.

Aprendi desde cedo a fazer isso, hehehe.

Oi @victorcastro

Você precisará fazer algo conforme exemplo abaixo:

var constraintsForm   = new Array();
//campo que você deseja filtrar
constraintsForm.push(DatasetFactory.createConstraint("campo", "valor", "valor", ConstraintType.MUST));
constraintsForm.push(DatasetFactory.createConstraint("metadata#active", true, true, ConstraintType.MUST));
	 constraintsForm.push(DatasetFactory.createConstraint("checkSecurity", "false", "false", ConstraintType.MUST));
	 constraintsForm.push(DatasetFactory.createConstraint("userSecurityId", "admin", "admin", ConstraintType.MUST));
	 var datasetForm = DatasetFactory.getDataset("DSliberacaoDocumento", null, constraintsForm, null);
if (datasetForm != null && datasetForm.rowsCount > 0) {
	log.info("------BUSCA SOLICITAÇÕES PARA VERIFICAR STATUS-------");
	for (var i = 0; i < datasetForm.rowsCount; i++){
			var solicitacao = datasetForm.getValue(i,"solicitacao");
			var constraintsHistorico  = new Array();	    	 
			constraintsHistorico.push(DatasetFactory.createConstraint("workflowProcessPK.processInstanceId", solicitacao , solicitacao, ConstraintType.MUST));	    
			constraintsHistorico.push(DatasetFactory.createConstraint("status", 0 , 0, ConstraintType.MUST));		
			var datasetProcesso = DatasetFactory.getDataset("workflowProcess", null, constraintsHistorico, null);
			
			 if (datasetProcesso != null && datasetProcesso.rowsCount > 0){
				//Aqui vai entrar as solicitações em aberto do campo filtrado
			}
		
			
	}	
}
1 curtida