Esta página tem como objetivo exemplificar o funcionamento de um robô simples para realizar o encaminhamento automático de etapas, disponibilizado no marketplace. Para isso, utilizaremos a biblioteca RotasOpenAPI, disponibilizada pelo time de Operações da Lecom.
Arquivo de Configurações (application.properties
)
Na pasta resources
, encontra-se o arquivo application.properties
. Nele, devem ser configurados os seguintes dados:
Domínio da plataforma,
API Key do usuário
Informações do processo a ser aprovado.
Nome da etapa a ser considerada na busca.
Status da atividade a ser consultada.
Tipo do encaminhamento, definido se o destino é um usuário, grupo, departamento ou função.
Destino do encaminhamento, definindo através do Login em caso de usuário, ou identificador para os demais.
Exemplo de configuração:
DOMAIN=<DOMINIO DA PLATAFORMA> API_KEY=<CHAVE OPEN API DO USUAIRO> CODIGO_PROCESSO=<CODIGO DO PROCESSO> VERSAO_PROCESSO=<VERSAO DO PROCESSO> NOME_ATIVIDADE=<NOME DA ATIVIDADE PARA CONSULTA> STATUS_ATIVIDADE=<STATUS DA ATIVIDADE PARA CONSULTA> TIPO_ENCAMINHAMENTO=<MODO DE ENCAMINHAMENTO (USER, FUNCTION, GROUP, DEPARTAMENT)> DESTINO_ENCAMINHAMENTO=<DESTINO DO PROCESSO ENCAMINHADO (LOGIN USUARIO, IDENTIFICADOR PARA DEMAIS CASOS)>
RotasOpenAPIConfig
A classe RotasOpenAPIConfig
deve ser configurada com os valores definidos no arquivo application.properties
. Isso permite a autenticação com o OpenAPI em todas as requisições realizadas.
Exemplo:
RotasOpenAPIConfig.setDomain(config.getDomain()); RotasOpenAPIConfig.setCredentials(config.getApiKey());
RotasOpenAPI
Primeiramente recuperamos uma lista de ProcessosPendentesUser
atravéz do RotasOpenApi
, realizando um filtro pelo nos da etapa atual do processo, filtrando pelo status.
ResponseOpenApi<List<ProcessosPendentesUser>> processosPendentes = RotasOpenApi .processo() .buscarProcessosPendentes() .porCodigoProcesso(Integer.valueOf(config.getCodigoProcesso())) .porVersaoProcesso(Integer.valueOf(config.getVersaoProcesso())) .porNomeAtividade(config.getNomeAtividade()) .porStatus(config.getStatusAtividade()) .executar();
Por fim, iteramos sobre a lista retornada, utilizando o RotasOpenApi
para encaminhar a etapa para o destino configurado.
for(ProcessosPendentesUser processo : processosPendentes.getContent()){ ResponseOpenApi<Object> response = RotasOpenApi .processo() .encaminharProcesso() .setProcesso(processo.getProcessInstanceId(), processo.getActivityInstanceId(), processo.getCycle()) .setTipoEncaminhamento(config.getTipoEncaminhamento()) .addTarget(config.getDestinoEncaminhamento()) .executar(); if (response.getStatus() != 204) { LOGGER.error("Erro executar UPPER_CAMEL. Erros: {}", response.getErros()); return; } LOGGER.info("Processo encaminhado com sucesso. ID da instância: {}", processo.getProcessInstanceId()); }
Conclusão
Este exemplo demonstrou o funcionamento do template disponibilizado pelo Marketplace para o encaminhamento de etapas. É importante ressaltar que este é um modelo básico. Após a inclusão deste template na sua plataforma, ele pode ser ajustado conforme as necessidades do seu cenário específico.
Adicionar Comentário