Ir para o conteúdo principal

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. 

image-1648756147424.png

O que você vai precisar 
Quantidade Descrição
1 Conector do tipo "Web Services (Rest)"
1

Processo com: 

  • 1 Atividade manual
  • 1 Evento BPM 
1 - Conector
Crie o conector de "Web Services (Rest)" apontando para o seu servidor DOX:
  • 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

image-1648755824499.png

2 - Aba "processos"
Crie um processo com 1 com as configurações a seguir:
  • Tipo: Escolha um da sua lista de tipo;
  • Descrição: Colaborar por WebService
  • Assunto: Colaborar por WebService
  • Nome Reduzido: Colaborar por WebService

image-1648756020503.png

3 - Aba "Permissões"
  • "Qualquer usuário cadastrado"

image-1648756039263.png

4 - Aba "Atividade"
  • Crie uma atividade Manual chamada "Informar MD5 e Código da Atividade"

image-1648756119152.png

5 - Formulários

Edite a atividade "Informar MD5 e Código da Atividade":

image-1648756629816.png

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)

image-1648756933509.png

 

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)

image-1661189561903.png

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.

image-1648757907241.png

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.

image-1648757979550.png

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

image-1648758259472.png

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:

image-1648818847007.png

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.

image-1648818937899.png

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 é: 

image-1648819300033.png

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.