Como iniciar processo recorrente por dataset?
Algumas vezes é necessário criar processos de forma automatizada dentro do fluig, para isso você tem diversas opções, uma delas é utilizando a sincronização do dataset do fluig.
O objetivo desse utilizar dataset sincronizado no Fluig é para que você possa sincronizar tabelas de bancos de dados distintos.
Podemos utilizar esse recurso para que o sistema sempre retorne um único valor, que será o log da execução do dataset.
Desse modo iremos fazer com que dentro do próprio sistema seja criado uma rotina, mais conhecido como jobs, que irá executar o nosso código abaixo.
Uma das formas de se criar processos de forma automatizada no fluig é utilizando o mecanismo de sincronização de dataset.
Ao criar um dataset no fluig você tem a opção de criar datasets sincronizados.
No exemplo abaixo iremos registrar na coluna Log o resultado dos erros, caso ocorra.
function onSync(lastSyncDate) {
var datasetlog = DatasetBuilder.newDataset();
datasetlog.addColumn("log");
var PROCESS_NAME="processo_teste"; // nome do processo a ser iniciado
var URL = "/process-management/api/v2/processes/"+PROCESS_NAME+"/start" ;
try{
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId : getValue("WKCompany") + '',
serviceCode : 'fluig_rest', // serviço rest criado no fluig.
endpoint : URL,
method : 'post', // 'delete', 'patch', 'put', 'get'
timeoutService: '100', // segundos
params : {
'targetState' : '5', // atividade do fluig a ser iniciada
'targetAssignee' : 'fluig', // usuário do fluig que receberá a atividade.
'subProcessTargetState' : '0',
'comment' : 'Solicitação iniciada com sucesso.', // comentário que será adicionado a solicitação quando ela for iniciada.
'formFields' :{
'txt_nome': 'Lucas Oliveira de Souza' // campos do formulário que serão preenchidos, juntamente com seus respectivos valores.
}
},
options : {
encoding : 'UTF-8',
mediaType: 'application/json',
useSSL : true
},
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
}
var vo = clientService.invoke(JSON.stringify(data));
if(vo.getResult()== null || vo.getResult().isEmpty()){
throw new Exception("Retorno está vazio");
}else{
datasetlog.addRow(new Array(vo.getResult()));
log.info(vo.getResult());
}
} catch(err) {
datasetlog.addRow(new Array(err));
}
return datasetlog;
}
Comments ()