# 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.
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/image-1648756020503.png)
##### **3 - **Aba "Permissões"****
- "Qualquer usuário cadastrado"
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/image-1648756039263.png)
##### **4 - Aba "Atividade"**
- Crie uma atividade Manual chamada "Informar MD5 e Código da Atividade"
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/image-1648756119152.png)
##### **5 - Formulários**
Edite a atividade "Informar MD5 e Código da Atividade":
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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)
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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)
[](http://kb.ema.net.br/uploads/images/gallery/2022-08/ZYgeAflhIlBcXCKl-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.
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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.
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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**
[](http://kb.ema.net.br/uploads/images/gallery/2022-03/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:
[](http://kb.ema.net.br/uploads/images/gallery/2022-04/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.
[](http://kb.ema.net.br/uploads/images/gallery/2022-04/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 é:
[](http://kb.ema.net.br/uploads/images/gallery/2022-04/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.