Listar Solicitações Ativas e Concluídas (Excluir Solicitações Canceladas)

Boa tarde,

Por diversas vezes eu precisei listar todos as solicitações ativas e concluídas de um determinado processo, ou seja, listar todas as solicitações que não foram canceladas.

Essa tarefa é lenta porque o dataset processTask não possui a informação da ID Processo, possuindo somente o número da solicitação.

Desse modo, para conseguir a informação preciso seguir as seguintes etapas.

1) Listar todas as solicitações de um determinado processo (workflowProcess).

var that = this;
var c1 = DatasetFactory.createConstraint("processId", "SFD", "SFD", ConstraintType.MUST);
var restricoes = new Array(c1)
var dataSetProcess = DatasetFactory.getDataset("workflowProcess", null, restricoes, null);

2) Criar uma CONSTRAINT do tipo like para cada um das solicitações listadas no dataset anterior

var restricoes = [];
if(dataSetProcess.values.length<=0){
    return null;
}
var restricoesTask = [];

for (var i in dataSetProcess.values){
    var registro = dataSetProcess.values[i];    
    var cTask = DatasetFactory.createConstraint("processTaskPK.processInstanceId",registro['workflowProcessPK.processInstanceId'],registro['workflowProcessPK.processInstanceId'], ConstraintType.SHOULD);
    restricoesTask.push(cTask);
}

3) Acessar o dataset processTaskPK com o array das CONSTRAINT criadas na etapa 2.

var dataSetTask = DatasetFactory.getDataset("processTask", null, restricoesTask, null);

4) Fazer um filtro em javascript do resultado da etapa 3 onde o status é igual a "4".

var taskCancelados = dataSetTask.values.filter(function (el){
    return el.status == 4;
});

5) Eliminar do resultado da etapa 1 as solicitações do resultado da etapa 4.

Como podemos notar o processo é moroso porque tenho que fazer requisições sequenciadas e as requisições retornam informações desnecessárias.

Uma forma mais simples seria a Totvs adicionar mais um campo no dataset workflowProcess com a informação se a solicitação está concluída, ativa ou cancelada.

Vocês poderiam fazer isso ?

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags processos cancelados datasets ou faça a sua própria pergunta.