Ir para o final dos metadados
Ir para o início dos metadados

You are viewing an old version of this content. View the current version.

Comparar com o atual View Version History

Versão 1 Próxima »

Os robôs na Plataforma Lecom possibilitam a automação dos fluxos de processos, permitindo a execução de ações automáticas e integrações com fontes externas.

Este template exemplifica um fluxo simples para adicionar ou editar metadados de documentos em processos. Ele utiliza o framework RotasOpenAPI, disponibilizado pela nossa equipe de Operações, o que simplifica a execução de chamadas no OpenAPI.

É importante destacar que este template, isoladamente, não atende a um cenário real. Após sua adição ao ambiente, será necessário ajustá-lo para adequá-lo às necessidades específicas do seu caso.

Visão geral

Esta página tem como objetivo exemplificar o funcionamento de um robô simples para realizar a edição de metadados em um campo template, 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.

  • Nome do campo documento.

  • Código do template utilizado no campo.

  • Nome do campo metadado.

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>
CAMPO_DOCUMENTO=<NOME DO CAMPO TIPO DOCUMENTO>
CODIGO_TEMPLATE=<CODIGO DO TEMPLATE UTILIZADO NO CAMPO DOCUMENTO>
CAMPO_METADADO=<NOME DO CAMPO METADADO A SER ALTERADO>

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 ProcessosPendentesUseratravéz do RotasOpenApi, realizando um filtro pelo nos da etapa atual do processo.

ResponseOpenApi<List<ProcessosPendentesUser>> processosPendentes = RotasOpenApi
		.processo()
		.buscarProcessosPendentes()
		.porCodigoProcesso(Integer.valueOf(config.getCodigoProcesso()))
		.porVersaoProcesso(Integer.valueOf(config.getVersaoProcesso()))
		.porNomeAtividade(config.getNomeAtividade())
		.executar();

Por fim, iteramos sobre a lista retornada, utilizando o RotasOpenApi para atualizar o campo metadado do documento no campo indicado.

for(ProcessosPendentesUser processo : processosPendentes.getContent()){

	// Recupera dados do campo e documento para atualização
	InfoCampoTemplate campoTemplate = recuperaDadosDocumento(processo, config.getCampoDocumento());

	if (campoTemplate == null) {
		return;
	}

	ResponseOpenApi<RetornoInclusaoSubstituicaoDocumento> response = RotasOpenApi
			.documento()
			.substituirDocumento()
			.setTipoSubstituicao(TipoSubstituicaoDocumento.REVISAO)
			.setDocumentId(Integer.valueOf(campoTemplate.getDocumentId()))
			.setIdTemplate(Integer.valueOf(config.getCodigoTemplate()))
			.addMetadados(config.getCampoMetadado(),"Valor a ser inserido no campo metadado")
			.executar();

		if (response.getStatus() < 200 || response.getStatus() >= 300) {
			LOGGER.error("Erro ae executar UPPER_CAMEL. Erros: {}", response.getErros());
			return;
		}

		LOGGER.debug("Metadado do documento atualizado com sucesso. ID da instância: {}", processo.getProcessInstanceId());

}

Conclusão

Este exemplo demonstrou o funcionamento do template disponibilizado pelo Marketplace para a edição de metadados em documentos de campos template. É 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.

  • Sem rótulos