# Painel de Execução

{% hint style="info" %}
Esta funcionalidade se chamava "Test mode" até junho de 2023.
{% endhint %}

O **Painel de Execução** permite testar um pipeline ou cápsula no ambiente de testes enquanto você projeta o fluxo. Ele utiliza valores de teste dos serviços [**Globals**](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/globals), [**Contas**](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/accounts), [**Relacionamento**](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/relationship) e [**Multi-Instância**](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/multi-instance).

Esse recurso ajuda a validar a lógica da implementação e depurar o fluxo em tempo real, sem precisar fazer o deploy.

## **Visão geral do Painel de Execução**

Você pode abrir o Painel de Execução no canto inferior esquerdo do **Canvas** ou pressionando **Cmd (ou Ctrl) + D**.

O painel inclui quatro abas:

* **Payload**: Insira os dados de teste.
* **Resultados**: Revise o input, output e resultados de teste.
* **Logs**: Rastreie eventos e erros.
* **Problemas:** Veja dicas para melhorar seu fluxo e identificar possíveis problemas na sua integração. Consulte a [documentação do Linter](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/canvas-building-validation) para mais detalhes.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2F2SAWbq4Ajv1jDVB7643R%2Fvis%C3%A3o-geral-painel%20de-execu%C3%A7%C3%A3o.gif?alt=media&#x26;token=caba5756-1d8b-44ba-97c8-04632a662916" alt=""><figcaption></figcaption></figure>

Aprenda mais sobre cada aba:

<details>

<summary><strong>Aba Payload</strong></summary>

Nessa aba, você define o payload de teste utilizado durante a execução. É possível:

* **Selecionar uma instância específica:** Quando um pipeline está configurado como multi-instância, o menu **Multi-instância** é exibido para que você escolha a instância do teste. Para mais detalhes, consulte a [documentação de Multi-Instância](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/multi-instance).
* **Salvar o payload:** Você pode salvar um payload para uso futuro. Clique no **ícone de salvar** e dê um nome a ele. Os payloads salvos são específicos de cada pipeline ou cápsula e não são compartilhados entre fluxos diferentes.
  * Uma vez salvos, os payloads aparecem na coluna **Payloads**. Você pode **Excluir** ou **Aplicar** um payload. Payloads salvos não podem ser editados. Caso altere algo, será necessário salvar como um novo payload.
* **Formatar o JSON:** Para melhorar a leitura, use o ícone da varinha mágica para formatar o JSON automaticamente.

{% hint style="info" %}
Ao executar uma cápsula, a coluna **Parâmetros** será exibida. Nela, você deve preencher os parâmetros e valores de conta de acordo com a configuração da cápsula.
{% endhint %}

</details>

<details>

<summary><strong>Aba Resultados</strong></summary>

Após a execução do teste, o resultado aparece na aba **Resultados**, uma visualização somente leitura dos dados de entrada e saída do pipeline. Nessa aba, você pode:

* **Copiar o JSON de saída** para a área de transferência.
* **Pesquisar elementos específicos** do JSON de saída com uma expressão JSONPath.

Essa aba é especialmente útil durante a execução de casos de teste, pois qualquer falha de asserção é exibida aqui, facilitando a validação.

</details>

<details>

<summary><strong>Aba Logs</strong></summary>

A aba **Logs** contém informações sobre os eventos registrados durante a execução do pipeline. Nela, é possível **filtrar** por tipo, **copiar** mensagens e **pesquisar** por parte ou todo o conteúdo da mensagem.

A lista de logs exibe os seguintes dados:

* **Tipo de log:** Classificação do log, indicada por um ícone. Tipos disponíveis:
  * **Info:** Informações gerais
  * **Alerta:** Avisos durante a execução
  * **Erros:** Erros ocorridos na execução
* **Timestamp:** Data e hora da execução do passo
* **Mensagem:** Conteúdo de cada log

</details>

<details>

<summary><strong>Aba Problemas</strong></summary>

A aba **Problemas** exibe alertas que precisam de atenção no seu fluxo.

Cada alerta apresenta uma breve descrição do problema e um link para a documentação correspondente. Para corrigir um alerta, clique em **Configurar passo** para abrir diretamente o formulário de configuração do conector relacionado.

Saiba mais sobre o [Linter](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/canvas-building-validation), uma ferramenta nativa do Canvas que identifica possíveis problemas de configuração.

</details>

Além de realizar testes, é possível **importar** e **exportar** arquivos de execução diretamente pelo painel.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2FIJK2Vx5iNZ8j1BcdCOkz%2Fexportar-importar.gif?alt=media&#x26;token=6052aeac-adeb-4c70-ae79-8538cfd89364" alt=""><figcaption></figcaption></figure>

<details>

<summary><strong>Importar</strong></summary>

Clique em **Importar execução** para carregar um arquivo com dados de execução.

Os dados de `execution` aparecem no painel, mas `currentFlowSpec` e `executedFlowSpec` não são exibidos no Canvas.

{% hint style="info" %}
Só é possível reexecutar se estiver no mesmo pipeline de origem e o fluxo original ainda existir.
{% endhint %}

</details>

<details>

<summary><strong>Exportar</strong></summary>

Clique em **Exportar execução** para baixar um arquivo contendo os dados do pipeline e da execução. Certifique-se de que os dados estejam totalmente carregados antes de exportar.

O arquivo exportado inclui:

* `pipelineId` e `pipelineName`
* `currentFlowSpec`: Fluxo no Canvas no momento da exportação
* `executedFlowSpec`: Fluxo no momento da execução
* `realm`: Realm do pipeline
* `execution`: Payload, Output, Mensagens e Logs

{% hint style="info" %}
Caso nenhuma execução tenha sido feita, apenas os metadados do pipeline serão exportados.
{% endhint %}

</details>

## **Executando o fluxo**

Executar um fluxo permite que você teste e valide seu pipeline e cápsula, garantindo que funcionem conforme esperado. É possível executar o fluxo completo ou apenas uma parte dele, dependendo das suas necessidades.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2F6gxCyPGZn5TpGSwqirGN%2Fexecutando-o-fluxo.gif?alt=media&#x26;token=1d784d05-24c3-41eb-bfb6-f634048a370e" alt=""><figcaption></figcaption></figure>

<details>

<summary><strong>Como executar o fluxo inteiro</strong></summary>

Você pode executar o fluxo inteiro utilizando uma das seguintes opções:

* Pressione **Cmd (Ctrl) + Enter**.
* Abra o Painel de execução e clique em **Executar**.
* Abra o Painel de execução, clique na seta ao lado de **Executar** e selecione **Executar pipeline** ou **Executar cápsula**.

Independentemente de haver conectores selecionados, essas opções sempre executarão o fluxo inteiro.

</details>

<details>

<summary><strong>Como executar parte do fluxo</strong></summary>

Para executar uma parte específica do fluxo:

#### **Etapa 1: Selecione os conectores**

Escolha os conectores desejados utilizando uma das seguintes opções:

* Segure **Shift** e arraste o mouse sobre os conectores.
* Segure **Shift** e clique em cada conector individualmente.

Certifique-se de que os conectores selecionados estejam conectados e em sequência. Saltar um conector no meio da sequência invalidará a seleção.

#### **Etapa 2: Execute a seleção**

Após selecionar os conectores, execute a parte escolhida do fluxo de uma das seguintes formas:

* Pressione **Cmd (Ctrl) + Shift + Enter**.
* Abra o Painel de execução, clique na seta ao lado de **Executar** e selecione **Executar seleção**.

</details>

<details>

<summary><strong>Como executar a partir de um passo específico</strong></summary>

Você pode iniciar a execução do pipeline a partir de qualquer passo escolhido, garantindo que todos os passos seguintes no fluxo sejam executados. Para isso, siga estes passos:

1. Clique no conector onde deseja iniciar a execução.
2. Abra o **Painel de execução**.
3. Clique no menu suspenso ao lado de **Executar** e selecione **Executar daqui**. Você também pode utilizar o atalho **Ctrl + Alt + Enter** para Windows ou **Cmd (⌘) + Option (⌥) + Enter** para macOS.

O pipeline será então executado a partir do passo selecionado e continuará com o restante do fluxo.

</details>

## **Analisando os resultados da execução**

Após executar um pipeline, você pode revisar seus resultados em **duas áreas diferentes** da interface:

#### **1. Resultado geral da execução (Painel de Execução)**

A aba **Resultados** no **Painel de Execução** mostra o resultado de todo o pipeline de uma vez. Isso oferece uma visão rápida sobre se o pipeline foi executado com sucesso ou se ocorreu algum problema.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2F7ihqah8hnfMxUI26alZR%2Faba-resultados.gif?alt=media&#x26;token=3f3621f1-3754-4801-8326-692ca681f36a" alt=""><figcaption></figcaption></figure>

#### **2. Saídas individuais dos conectores (Painel lateral esquerdo)**

Para uma análise mais detalhada do resultado de cada conector, acesse a seção **Fluxo** no painel lateral esquerdo e expanda a seção **Mensagens**.

Aqui, a saída de cada conector é exibida, com um limite de até 5.000 mensagens. Cada conector recebe o payload da etapa anterior, o processa e gera um novo payload.

Na visualização **Mensagens**, você pode:

* Ver o **Nome do Passo** do conector e o tempo de execução.
* Pesquisar mensagens pelo nome completo ou parcial, ou por parâmetros do conector.
* Ver uma prévia da mensagem, onde também é possível:
  * Baixar a saída em JSON.
  * Copiar a saída em JSON para a área de transferência.
  * Filtrar elementos específicos usando uma expressão JSONPath.
  * Criar um mock response para conectores compatíveis. Saiba mais na documentação sobre [Mock de Conectores](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/mocking).

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2FkWVyxNfHwNWMkhw6AE5f%2Fmensagens.gif?alt=media&#x26;token=c75bd1df-834c-43f1-8680-31e4df6214a4" alt=""><figcaption></figcaption></figure>

## **Informações adicionais**

Abaixo você encontrará alguns detalhes importantes sobre o Painel de execução e teclas de atalho úteis.

<details>

<summary><strong>Inatividade do Painel de execução</strong></summary>

Se o Painel de execução ficar inativo por 24 horas sem uso, ele será desativado. Ao reabrir o Canvas, pode levar até 3 minutos para o Painel ficar ativo novamente.

</details>

<details>

<summary><strong>Atalho de teclado</strong></summary>

**macOS**

* **⌘ + D**: Abre ou fecha o Painel de Execução
* **⌘ + Enter**: Executa o fluxo completo
* **⌘ + Shift + Enter**: Executa os conectores selecionados
* **⌘ + ⌥ + Enter**: Executa a partir de um passo selecionado

**Windows**

* **Ctrl + D:** Abre ou fecha o Painel de Execução
* **Ctrl + Enter:** Executa o fluxo completo
* **Ctrl + Shift + Enter:** Executa os conectores selecionados
* **Ctrl + Alt + Enter:** Executa a partir de um passo selecionado

</details>
