> For the complete documentation index, see [llms.txt](https://docs.gaiodataos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gaiodataos.com/gaio-dataos-portuguese/tools/tarefas/entrega/conteudo/documentacao-do-context-helper.md).

# Documentação do Context Helper

O objeto `context` fornece uma interface poderosa para acessar dados e executar ações dentro do Report Static Query Builder. Ele está disponível globalmente como `window.context` e contém diversos componentes principais.

### Estrutura Geral

```javascript
{
  params: {},       // Parâmetros de query
  table: {},        // Tabelas disponíveis com dados
  flow: Function,   // Carregar ou abrir um flow
  form: Function,   // Abrir um formulário
  query: {}         // Objeto Query Builder
}
```

### Componentes

#### params

O objeto `params` contém todos os parâmetros de query disponíveis para o report atual.

```javascript
// Exemplo
context.params.userId = "12345";
context.params.startDate = "2023-01-01";
```

***

#### table

O objeto `table` contém todas as tabelas disponíveis, onde cada tabela é uma lista de objetos.

```javascript
// Exemplo
const firstUser = context.table.users[0];

const totalSales = context.table.sales
  .reduce((sum, sale) => sum + sale.amount, 0);
```

***

#### flow()

A função `flow()` permite carregar ou abrir outro flow a partir do report atual.

**Parâmetros**

```javascript
context.flow({
  flowId: "flow123",                // Obrigatório: ID do flow a ser carregado
  executionType: "loadFlow",        // Obrigatório: "loadFlow" ou "openFlow"
  reloadCurrentFlow: true,          // Opcional: Recarregar o flow atual após execução
  reloadCurrentContent: true,       // Opcional: Recarregar o conteúdo atual após execução
  resetParams: false,               // Opcional: Resetar params para o padrão
  params: [                         // Opcional: Parâmetros a serem enviados
    {
      paramName: "userId",
      paramValue: "12345"
    },
    {
      paramName: "view",
      paramValue: "detailed"
    }
  ]
});
```

**Opções de executionType**

* `openFlow` – Abre o flow selecionado no dashboard
* `loadFlow` – Executa o flow em segundo plano

***

#### form()

A função `form()` permite abrir um formulário a partir do report atual.

**Parâmetros**

```javascript
context.form({
  formId: "form123",                // Obrigatório: ID do formulário
  params: [                         // Opcional: Parâmetros enviados ao formulário
    {
      paramName: "userId",
      paramValue: "12345"
    },
    {
      paramName: "mode",
      paramValue: "edit"
    }
  ]
});
```

***

#### query

A propriedade `query` fornece acesso ao Query Builder.

Esse recurso permite construir e executar consultas programaticamente.

{% hint style="warning" %}
Para documentação detalhada sobre o Query Builder, consulte a aba específica de Query Builder.
{% endhint %}

### Exemplos Práticos

#### Navegar entre flows com base em uma condição

```javascript
if (context.table.users.length > 0) {
  context.flow({
    flowId: "userDetailsFlow",
    executionType: "openFlow",
    params: [
      {
        paramName: "userId",
        paramValue: context.table.users[0].id
      }
    ]
  });
} else {
  context.flow({
    flowId: "noUsersFlow",
    executionType: "openFlow"
  });
}
```

***

#### Abrir um formulário com dados do contexto atual

```javascript
// Abrir formulário de edição para o primeiro produto
context.form({
  formId: "productEditForm",
  params: [
    {
      paramName: "productId",
      paramValue: context.table.products[0].id
    },
    {
      paramName: "category",
      paramValue: context.params.currentCategory
    }
  ]
});
```

***

#### Executar um flow em segundo plano e recarregar a página atual

```javascript
// Atualiza dados em background e recarrega a visualização atual
context.flow({
  flowId: "dataUpdateFlow",
  executionType: "loadFlow",
  reloadCurrentFlow: true,
  reloadCurrentContent: true,
  resetParams: false
});
```

***

### Boas Práticas

1. **Gerenciamento de Parâmetros:**\
   Ao enviar parâmetros para flows ou formulários, inclua apenas os que precisam ser alterados em relação ao contexto atual.
2. **Tratamento de Erros:**\
   Sempre verifique se os IDs obrigatórios (`flowId`, `formId`) são válidos antes de chamar as funções.
3. **Experiência do Usuário:**\
   Utilize `reloadCurrentFlow: true` com cautela, pois isso recarregará a visualização atual do usuário.
4. **Performance:**\
   Ao trabalhar com tabelas grandes, considere processar os dados antes de navegar para outro flow para reduzir transferência desnecessária de dados.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.gaiodataos.com/gaio-dataos-portuguese/tools/tarefas/entrega/conteudo/documentacao-do-context-helper.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
