Colaborando/Alterando atividades dos processos por WebService
Com a liberação da nova versão (Refactor) do DOX, a colaboração dos processos e alguns outros recursos passaram a ser realizadas por meio de chamadas via WebServices.
Por conta disso, vou demostrar como configurar eventos no Dox para alterar a atividade das suas instâncias, da mesma forma que ocorre quando você abre uma instância no Dox Estúdio e define uma atividade manualmente.
Regras para alterar a atividade (via WebServices) de um processo:
- O processo não pode estar sendo colaborado por outro usuário.
- O processo não pode estar cancelado ou finalizado.
- As regras de atribuições das atividades que você vai mover, também vale para o webservices. Ou seja, o usuário que está executando os eventos de webservices precisa ter acesso aquela atividade para a qual você vai mover.
- A atividade onde está sendo utilizado os eventos de Webservice precisam ser do tipo MANUAL, pois atualmente é necessário que o HASHSESSAO esteja autenticado por um usuário válido e logado no portal.
Pré requisitos: Versão 12.0 ou superior
Processo simples
Primeiramente vamos criar um processo simples com uma atividade e 1 evento, para testar a configuração do evento antes de prosseguir com o resto do desenvolvimento.
Quantidade | Descrição |
1 | Conector do tipo "Web Services (Rest)" |
1 |
Processo com:
|
1 - Conector
- Descrição: WebServices EMA - BPMSERVER
- Tipo: Web Services (REST)
- Endereço URL: substitua 127.0.0.1 pelo IP do servidor onde está instalado o Dox.
- Protocolo de segurança: TLS
- Autenticação: Nenhum
- Usuário: manter como está
- Senha: manter como está
Caso o Dox esteja usando uma porta diferente de 80 ou 443, coloque a portal após o seu IP.
-
-
- Exemplo: 192.168.0.100:8888
-
2 - Aba "processos"
- Tipo: Escolha um da sua lista de tipo;
- Descrição: Colaborar por WebService
- Assunto: Colaborar por WebService
- Nome Reduzido: Colaborar por WebService
3 - Aba "Permissões"
- "Qualquer usuário cadastrado"
4 - Aba "Atividade"
- Crie uma atividade Manual chamada "Informar MD5 e Código da Atividade"
5 - Formulários
Edite a atividade "Informar MD5 e Código da Atividade":
Mantenha a aba "Atribuição", mantenha como está.
Na aba "Formulário", crie 2 formulários:
- Primeiro:
- Tipo: Dissertativa
- Título: MD5
- Armazenar em: /*MD5PROCESSOMOVER*/ (texto)
- Tipo de dados: Texto
- Obrigatório: Sim
- Visível: Sim
- Largura do container: 33%
- Largura do elemento: Padrão
- Segundo:
- Tipo: Dissertativa
- Título: Código da nova atividade
- Armazenar em: /*IDATIVIDADENOVA*/ (inteiro)
- Tipo de dados: Inteiro
- Obrigatório: Sim
- Visível: Sim
- Largura do container: 67%
- Largura do elemento: Padrão
Essa informações serão usadas no evento de Webservices para mover o processo que você deseja.
6 - Eventos
Na aba "Eventos", crie um evento de "Web Service - Requisição" com as configurações:
- Descrição: WS - Requisição PATCH ao BPMSERVER
- Momento da execução: Ao sair da atividade
- Atualizar status da execução no Portal: Marque se desejar (Opcional)
- Serviço: Use a "lupa" para selecionar o código do conector criado na etapa 01 do passo 1.
- Recurso: /api/instancias/execucao//*MD5PROCESSOMOVER*//desvio//*IDATIVIDADENOVA*/
Aqui usamos as variáveis criadas para os formulários, verifique se os nomes delas estão iguais as que você criou.
- Método: Patch
Na aba "Requisição" adicione uma única linha:
- Tipo: Header
- Nome: Authorization
- Valor: Bearer /*HASHSESSAO*/
Usamos a tag Bearer antes da /*HASHSESSAO*/ para autenticar na API do Dox, esse configuração é essencial para o funcionamento do evento.
- Corpo: Movido via evento Web Services pelo processo /*IDPROCESSO*/.
Você pode alterar o texto da forma que achar melhor. A informação digitada nesse campo será alimentada no LOG do processo que você moveu.
- Timeout: 60 segundos (caso for necessário, pode alterar)
Na aba "Resposta"
- Cabeçalho (Header): deixar em branco
- Corpo (Body): application/json
- Utilizar codificação UTF-8: Marcar
- Armazenar em: /*JSON.RETORNO*/ (Texto longo)
- Exceção:
- Armazenar em: /*JSON.EXCECAO*/ (Texto longo)
7 - Validar processo
Para finalizar o desenvolvimento do BPM, valide o processo para garantir que não tenha nenhum erro. Se houver, corrija como solicitado no assistente.
Exemplo de Funcionamento:
Conforme a imagem a seguir, o processo acima vai executar um evento Web Services ao sair da atividade, que vai mover um processo de uma atividade para outra.
Vamos testar!
Comece pegando o código MD5 da instância de um processo, para isso navegue até Processos > Instâncias de negócio > Listar o processo desejado > CTRL + SHIFT + D
Depois você vai precisar saber o código da atividade para qual você vai mover o seu processo, no exemplo o código é 3. Agora, basta inserir nos formulários feitos e clicar em confirmar:
Analisando o LOG da instâncias #867 verifique se o Retorno da requisição foi "HTTP/1.1 204 No Content" se sim, o processo foi movido com sucesso.
O Web Service da Ema vai retorna "204 No Content" sempre que ele executar a chamada sem erros. Porém essa informação não é alimentado nas variáveis /*JSON.RETORNO*/ ou /*JSON.EXECAO*/. Em resumo, se as variáveis não tiverem os valores atualizados após o retorno do Web Services, então tudo ocorreu com sucesso.
Analisando o LOG do processo com MD5 1F44DD21E9254498BB28B69065D86D60, que foi movido pelo nosso web service, a mensagem que aparece no log é:
Atenção!
** Lembrando que, ao utilizar dos eventos de webservice para mover atividades, é necessário que seja configurado em atividades do tipo MANUAL. Caso seja necessário utilizar em atividades AUTOMÁTICAS, entrar em contato com a Ema software e solicitar uma orientação de sua funcionalidade.