> For the complete documentation index, see [llms.txt](https://kb.stoque.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.stoque.com.br/zeev/apis/all/assignments/finish.md).

# Finalizar uma tarefa pendente

## Como executar uma atividade pendente no Zeev utilizando API'?

Para finalizar, ou seja executar uma tarefa pendente no Zeev utilizando API, existem duas maneiras, são elas:

* [Utilizando o código identificador de atribuição da atividade](#como-finalizar-uma-atividade-utilizando-api-e-o-codigo-de-atribuicao-da-atividade)
* [Utilizando o código identificador da instância e o código original / Integração](#como-finalizar-uma-atividade-pendente-atribuida-a-pessoa-utilizando-api-o-codigo-da-instancia-e-o-co)

## Como finalizar uma atividade utilizando API e o código de atribuição da atividade?

Para finalizar uma atividade pendente, utilizando a API do Zeev e o código de atribuição, siga os passos abaixo:

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Obter o assingnmentid:** Utilize as API's do Zeev para obter o ID de atribuição conforme explicado nesta [página](/zeev/apis/all/assignments.md).
3. **Obter os tipos de resultado possíveis**: Verifique as opções de botão disponíveis para finalizar a tarefa, obtenha na página de configuração da atividade através da modelagem do processo ou utilizando API, veja como em [#como-obter-a-lista-de-acoes-botoes-disponiveis-para-finalizar-uma-atividade-tarefa-utilizando-api](#como-obter-a-lista-de-acoes-botoes-disponiveis-para-finalizar-uma-atividade-tarefa-utilizando-api "mention").\
   Este valor deve ser informado no atributo result do corpo da requisição.
4. **Enviar a Requisição**: Utilize o endpoint [#api-2-assignments-assignmentid](#api-2-assignments-assignmentid "mention") para enviar a requisição conforme modelo e exemplo (Troque seu\_endereco.do.zeev pelo endereço que você usa para acessar o Zeev):
5. ***Rate limit:*** Se for finalizar tarefas em lote, [respeite os limites máximos de solicitações](/zeev/apis/como-utilizar-as-apis-do-zeev/como-controlar-o-volume-maximo-de-requisicoes-a-apis.md);

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/assignments/{assignmentid}" method="put" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de requisição para finalizar tarefa por código de atribuição

{% tabs %}
{% tab title="Node.js" %}

```javascript
const myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const raw = JSON.stringify({
  "result": "concluído",
  "reason": "Informe aqui a justificativa, se aplicável",
  "formFields": [
    //Lista dos campos que deseja preencher se aplicável
    {
      "name": "nome",
      "value": "John",
      "row": 1
    },
    {
      "name": "idade",
      "value": "29",
      "row": 1
    }
  ],
  "messages": [
  //Inclusão de mensagens na tarefa
    {
      "messageBody": "Texto de mensagem incluída na instância do Zeev e vísivel para o requisitante",
      "requesterCanSee": true //esta mensagem pode ser visualizada pela pessoa que fez a solicitação
    },
    {
      "messageBody": "Texto de mensagem incluída na instância do Zeev e invísivel para o requisitante",
      "requesterCanSee": false //esta mensagem não pode ser visualizada pela pessoa que fez a requisição
    }
  ],
  "files": [
    //Lista de arquivos a serem adicionados se aplicável
    {
      "filename": "RG.JPG",
      "base64Content": "64AZNGHZTE",
      "resume": "minim anim eiusmod",
      "requesterCanSee": true,
      "docType": "Ut"
    },
    {
      "filename": "ullamco",
      "base64Content": "cupidatat",
      "resume": "proident reprehenderit adipisicing dolore",
      "requesterCanSee": false,
      "docType": "in esse nulla"
    }
  ]
});

const requestOptions = {
  method: "PUT",
  headers: myHeaders,
  body: raw
};

try {
  const response = await fetch("http://localhost:91/api/2/assignments/:assignmentid", requestOptions);
  const result = await response.text();
  console.log(result)
} catch (error) {
  console.error(error);
};
```

{% endtab %}
{% endtabs %}

***

## Como finalizar uma atividade pendente atribuída à pessoa, utilizando API, o código da instância e o código original/integração (apelido do elemento da tarefa)?

É possível utilizar as API's do Zeev para finalizar atividades, enviando como parâmetros o código da instância e código original/Integração.\
Para isso a pessoa autenticada na API deve ser responsável pela tarefa.

{% hint style="warning" %}
Em raras situações, a consulta pelo código da instância da solicitação e pelo código original/integração ou apelido do elemento pode retornar mais de um registro. Nesse caso, será finalizada a primeira tarefa encontrada.
{% endhint %}

Siga os passos abaixo para finalizar a atividade de acordo com os critérios definidos acima:

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Obtenha o Id da instância:** Obtenha o ID da instância que desjea finalizar, você pode fazer isso navegando nas páginas do Zeev, em Monitorar > Solicitações, em Acompanhar solicitações ou ainda utilizando as API's disponíveis como descrito nesta [página](/zeev/apis/all/instances/report.md);
3. **Obtenha o Código original (alias do elemento) da atividade pendente:** Você pode obter o código original da atividade na tela do modelador de processos ao abrir as configurações da atividade.\
   Se desejar, este valor também pode ser obtido utilizando API's, ele é uma propriedade que retorna em algumas consultas de atribuição de atividades como no endpoint [Listar minhas tarefas pendentes](/zeev/apis/all/assignments/my-tasks.md#api-2-assignments)**.** La este valor fica na seguinte estrutura do corpo de resposta instance > instanceTask > task > element > alias.\
   Consulte mais opções de API's que retornam estes dados em [Listar minhas tarefas pendentes](/zeev/apis/all/assignments/my-tasks.md);
4. **Obter os tipos de resultado possíveis**: Verifique as opções de botão disponíveis para finalizar a tarefa, obtenha na página de configuração da atividade através da modelagem do processo ou utilizando a API descrita em [#como-obter-a-lista-de-acoes-disponiveis-em-uma-atividade-utilizando-api](#como-obter-a-lista-de-acoes-disponiveis-em-uma-atividade-utilizando-api "mention").\
   Este valor deve ser informado no atributo result do corpo da requisição;
5. **Enviar a Requisição**: Utilize o endpoint [#api-2-assignments-instance-instanceid-code](#api-2-assignments-instance-instanceid-code "mention") para enviar a requisição conforme modelo e exemplo (Troque seu\_endereco.do.zeev pelo endereço que você usa para acessar o Zeev)

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/assignments/instance/{instanceid}/{code}" method="put" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

Exemplo de requisição para finalizar uma tarefa utilizando o alias do elemento

{% tabs %}
{% tab title="Node.js" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>let instanceId=4321;
</strong><strong>let taskCode='T10';
</strong><strong>
</strong><strong>const myHeaders = new Headers();
</strong>myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer TOKEN_DO_USUARIO");

const raw = JSON.stringify({
  "result": "Resolvido"
});

const requestOptions = {
  method: "PUT",
  headers: myHeaders,
  body: raw
};

try {
  const response = await fetch(`https://seu_endereco.do.zeev/api/2/assignments/instance/${instanceId}/${taskCode}`, requestOptions);
  const result = await response.json();
  console.log(result)
} catch (error) {
  console.error(error);
};
</code></pre>

{% endtab %}
{% endtabs %}

***

## Como obter a lista de ações / botões disponíveis para finalizar uma atividade / tarefa, utilizando API?

Para finalizar uma atividade utilizando as API's é preciso informar o parâmetro **result** que indica a ação executada. Imagine que a atividade exige uma avaliação e você deve conclui-la com uma aprovação ou reprovação.&#x20;

Este é o objetivo do atributo result.\
Para obter os valores disponíveis que podem ser utilizados no atributo result utilizando API, você deve seguir os passos abaixo:

1. **Autenticação**: Primeiro obtenha um [token de autenticação](https://kb.zeev.it/apis/como-gerar-tokens-para-autenticar-nas-apis) com permissão de realizar essa operação;
2. **Enviar a Requisição**: Utilize o endpoint [#api-2-assignments-assignmentid-actions](#api-2-assignments-assignmentid-actions "mention") para enviar a requisição conforme modelo e exemplo (Troque seu\_endereco.do.zeev pelo endereço que você usa para acessar o Zeev):

{% openapi src="/files/DYIxvabeLXa2mL6uE2si" path="/api/2/assignments/{assignmentid}/actions" method="get" %}
[ZeevApi's\_new.json](https://3371003943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MD66pBdRalAQgnhNstG%2Fuploads%2Ff5huLIsAqm88oSjkTavv%2FZeevApi's_new.json?alt=media\&token=aae47f9f-90ca-48d0-b250-fc38fe74e6c0)
{% endopenapi %}

## **Links relacionados**:

* [O que é preciso para fazer integrações do Zeev para outros sistemas?](/zeev/integracoes/o-que-e-preciso-para-fazer-integracoes.md)
* [Como autenticar nas APIs do Zeev](/zeev/apis/como-utilizar-as-apis-do-zeev/como-gerar-tokens-para-autenticar-nas-apis.md)
* [Como controlar o volume máximo de requisições à APIs](/zeev/apis/como-utilizar-as-apis-do-zeev/como-controlar-o-volume-maximo-de-requisicoes-a-apis.md)
* [Como acessar o Swagger / OpenAPI](/zeev/apis/como-utilizar-as-apis-do-zeev/como-acessar-o-swagger-openapi.md)
* [Como executar tarefas](/zeev/dia-a-dia/como-executar-tarefas.md)
