Precisava criar no analytics o tempo das solicitações. Exemplo: O tempo que demorou para que uma solicitação demorou, desde que ela foi iniciada até o encerramento da solicitação. Alguém já conseguiu criar e tem um exemplo? Grato!
Precisava criar no analytics o tempo das solicitações. Exemplo: O tempo que demorou para que uma solicitação demorou, desde que ela foi iniciada até o encerramento da solicitação. Alguém já conseguiu criar e tem um exemplo? Grato!
No novo Fluig 1.6.1 esse campo foi adicionado e já é enviado no novo ETL do analytics. Faz a atualização no ambiente de testes, verifica se tudo seu funcionou certinho (forms, processos, zooms) e segue pra atualização do ambiente produção.
Eu fiz um dataset uma vez que criava todo um histórico de uma solicitação. O que daria para fazer era pegar estes campos do dataset e subir para o analytics.
PS: Precisa informar o número da solicitação, recomendo criar uma constraint que receba o número da solic.
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
var localConstraints = new Array();
newDataset.addColumn("Id_da_Solicitação");
newDataset.addColumn("Número_da_Atividade");
newDataset.addColumn("Data_de_Início_da_Atividade");
newDataset.addColumn("Data_de_Fim_da_Atividade");
newDataset.addColumn("Hora_Fim_da_Atividade");
newDataset.addColumn("Tempo_Gasto")
newDataset.addColumn("Status_da_Atividade")
newDataset.addColumn("Data_Prazo");
newDataset.addColumn("Hora_Prazo");
newDataset.addColumn("Quantidade_Repetições");
//setar o número da solicitação aqui
var c1 = DatasetFactory.createConstraint("processTaskPK.processInstanceId", 1051, 1051, ConstraintType.MUST);
localConstraints.push(c1);
var fields1 = new Array("processTaskPK.processInstanceId","choosedSequence","status","taskCompletionHour","taskCompletionDate","deadlineDate","deadlineHour");
var atividade = DatasetFactory.getDataset("processTask", fields1, null, null);
var row = new Array();
var rows = new Array();
var qntd = [];
if(atividade.rowsCount > 0) {
for (var i = 0; i < atividade.rowsCount; i++) {
var Idsolicitacao = atividade.getValue(i, "processTaskPK.processInstanceId");
var nroAtividade = atividade.getValue(i, "choosedSequence");
qntd.push(nroAtividade);
var dataFinal = atividade.getValue(i, "taskCompletionDate");
var tempoFinal = atividade.getValue(i, "taskCompletionHour");
var dataPrazo = atividade.getValue(i, "deadlineDate");
var horaPrazo = atividade.getValue(i, "deadlineHour");
var status = atividade.getValue(i, "status");
if (status == 0){
status = "Aberta";
}else if (status == 2){
status = "Finalizada";
}else if (status == 3){
status = "Solicitada por Admin";
}else if (status == 4){
status = "Cancelada";
}
var tempoGasto = "0";
if (i<atividade.rowsCount-1){
var tempoFinalNxt = atividade.getValue(i+1, "taskCompletionHour");
if (tempoFinalNxt != "0"){
tempoGasto = parseInt(tempoFinalNxt)-parseInt(tempoFinal);
}
}
var hmsFinal = ConverterSeg(tempoFinal);
var hmsGasto = ConverterSeg(tempoGasto)
var hmsPrazo = ConverterSeg(horaPrazo)
localConstraints = new Array();
//setar o número da solicitação aqui
var c2 = DatasetFactory.createConstraint("processHistoryPK.processInstanceId", 1051, 1051, ConstraintType.MUST);
localConstraints.push(c2);
var fields2 = new Array("movementDate","processHistoryPK.processInstanceId");
var data = DatasetFactory.getDataset("processHistory", fields2, null, null);
row = new Array();
row.push(Idsolicitacao);
row.push(nroAtividade);
row.push(data.getValue(0, "movementDate"));
row.push(dataFinal);
row.push(hmsFinal);
row.push(hmsGasto);
row.push(status);
row.push(dataPrazo);
row.push(hmsPrazo);
rows.push(row);
}
var counts = {};
qntd.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });
for (var i = 0; i < rows.length; i++) {
var nroAtividade = atividade.getValue(i, "choosedSequence");
rows[i].push(counts[nroAtividade]);
newDataset.addRow(rows[i]);
}
}else {
newDataset.addRow(new Array("Erro ao consultar o dataset: ", "Não foram achados registros no dataset."));
}
return newDataset;
function ConverterSeg(segundos){
var sec_num = parseInt(segundos, 10);
var hours = Math.floor(sec_num / 3600);
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
var seconds = sec_num - (hours * 3600) - (minutes * 60);
if (hours < 10) {hours = "0"+hours;}
if (minutes < 10) {minutes = "0"+minutes;}
if (seconds < 10) {seconds = "0"+seconds;}
return hours+':'+minutes+':'+seconds;
}
}
Eu vi mesmo esta funcionalidade, mas agora não posso atualizar meu ambiente e preciso disso em um relatório no analytics. Eu vi que no analytics tem a date de criação da solicitação e e a data da ultima atualização( data final da solicitação), pensando que a (data final - data inicial) = tempo do processo. Mas ainda não consegui fazer uma métrica que me forneça isso. Se alguém conseguiu fazer?
Ainda tem a questão do calendário. Pra pegar o tempo útil.
— Thiago César Matos 21 de Jun de 2017Infelizmente não dá pra calcular métrica usando datas no analytics. Você realmente teria que criar um campo no formulário, armazenar isso e marcar pra enviar pro analytics.
— Thiago César Matos 21 de Jun de 2017