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

« Anterior Versão 3 Atual »

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

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>

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 a inclusão do documento no campo indicado. Para exemplificar o fluxo, neste template realizamos a criação de um arquivo temporário para inclusão, a origem deste arquivo fica a critério da implementação definitiva.

for(ProcessosPendentesUser processo : processosPendentes.getContent()){
	Path tempFilePath = null;
	try {

		// Cria e preenche arquivo temporario para exemplo
		tempFilePath = Files.createTempFile("temp-documento", ".docx");
		String conteudo = "Texto para exemplo";
		Files.write(tempFilePath, conteudo.getBytes(), StandardOpenOption.WRITE);

		ResponseOpenApi<RetornoInclusaoSubstituicaoDocumento> response = RotasOpenApi
				.processo()
				.incluirDocumento()
				.setAcao(TipoAcaoDocumento.IMPORTAR)
				.setCodigoInstancia(processo.getProcessInstanceId())
				.setCodigoAtividade(processo.getActivityInstanceId())
				.setCodigoCiclo(processo.getCycle())
				.setNomeCampo(config.getCampoDocumento())
				.setIdTemplate(Integer.valueOf(config.getCodigoTemplate()))
				.setFile(tempFilePath.toFile())
				.executar(true);

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

		LOGGER.debug("Documento incluido com sucesso. ID da instância: {}", processo.getProcessInstanceId());

	} catch (IOException e) {
		LOGGER.error("Erro ao criar ou manipular arquivo temporário", e);
	} finally {
		if (tempFilePath != null) {
			try {
				Files.deleteIfExists(tempFilePath);
			} catch (IOException e) {
				LOGGER.error("Falha ao deletar arquivo temporário", e);
			}
		}
	}
}

Conclusão

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

0 Comentários

Você não está logado. Qualquer alteração que você fizer será marcada como anônimo. Pode querer Autenticar-se se já tem uma conta.