# Filtragem dinâmica

Quando você está utilizando o recurso de [mostrar os relatórios do Power BI no seu sistema](https://docs.powerembedded.com.br/documentacao-tecnica/api/mostrar-relatorio-no-seu-sistema), muitas vezes é necessário aplicar uma filtragem nos dados automaticamente ao abrir o relatório.

Esse recurso se chama filtragem dinâmica e está disponível no Power Embedded.

### 1. Como configurar a filtragem dinâmica

Para configurar a filtragem dinâmica, acesse a página de [Conjuntos de dados](https://admin.powerembedded.com.br/Datasets).

Pesquise pelo conjunto de dados que você gostaria de configurar a filtragem dinâmica, clique no botão **Ações** e selecione a opção **Filtragem dinâmica (API)**.

<figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2FbuugxrwWhF9kkL9kRS28%2Fimage.png?alt=media&#x26;token=f661a197-71d9-4e24-879c-670284acc56c" alt=""><figcaption></figcaption></figure>

Essa é a tela de configuração da filtragem dinâmica:

<figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2FfaV0BZVbWm3DAD4Nd5b6%2Fimage.png?alt=media&#x26;token=c6479b6d-43f1-47c4-8218-8373fe90877c" alt=""><figcaption></figcaption></figure>

Na tela de filtragem dinâmica, você precisará configurar 3 parâmetros:

* **Nome da propriedade na chamada da API**: Esse é o nome da propriedade que será utilizada para passar o valor a ser filtrado na chamada da API. Esse nome da propriedade pode ser definido por você, e deverá ser utilizado na chamada da API.<br>

  <figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2FWxPVvA2ueJJ66CCP4JZW%2Fimage.png?alt=media&#x26;token=433be7b3-158d-4593-9023-d167e5f43be0" alt=""><figcaption></figcaption></figure>

* **Nome do parâmetro no modelo**: Esse é o nome da tabela e da coluna que serão filtrados no seu relatório. O formato desse campo deve seguir o padrão tabela/coluna e é case sensitive, ou seja, existe diferença entre maiúsculo e minúsculo e deve ser igual ao que está no Power BI.<br>

  <figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2FZUEJSO89hOMTCpNqbfjN%2Fimage.png?alt=media&#x26;token=69a53483-fa68-48b1-8f2d-bb45dfc755f8" alt=""><figcaption></figcaption></figure>

* **Operador**: Qual o operador de comparação deve ser utilizado para filtrar os dados. Na grande maioria dos casos, o operador será o "=".

### 2. Como utilizar a filtragem dinâmica

Para utilizar a filtragem dinâmica, você irá utilizar o parâmetro **customFilters** no JSON da chamada da API.

Exemplo de requisição JSON com CustomFilters e 2 parâmetros:

```json
{
  "userEmail": "dirceu.resende@powertuning.com.br",
  "organizationId": "4b532635-a0c6-48ae-bea8-a5197c63f057",
  "reportId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "customFilters": [
    {
      "key": "_loja", // Parâmetro de Loja que irá filtrar dLojas/FD_LOJA
      "value": "5" // O código da loja que será filtrada
    },
    {
      "key": "_funcionario", // Parâmetro de funcionário que irá filtrar
      "value": "12" // O código do funcionário que será filtrado
    }
  ]
}
```

Retorno da chamada da API:

<figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2FDlG4sZnBQkPYuozc9YR8%2Fimage.png?alt=media&#x26;token=d60f0bf9-058e-4feb-88ee-67c561ab69e9" alt=""><figcaption></figcaption></figure>

Ao incorporar essa URL no seu sistema, o usuário será direcionado para essa URL:

*<https://demo.powerembedded.com.br/Organization/4b532635-a0c6-48ae-bea8-a5197c63f057/Report/a91ff398-849d-40bd-b40a-e40229f273eb><mark style="color:red;">**?filter=dLojas/FD\_LOJA eq 5 and dFuncionarios/FD\_FUNCIONARIO eq 12**</mark>*

Ao abrir o relatório, podemos observar que os dados foram filtrados corretamente:

<figure><img src="https://2938845060-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft2gQSHbraGsYbDGTmWAa%2Fuploads%2F7NHiigqZ5SYRMLySEut6%2Fimage.png?alt=media&#x26;token=5565fbf6-ad5c-4744-8529-b584366b33b6" alt=""><figcaption></figcaption></figure>

### 3. Observações sobre a filtragem dinâmica

* As colunas que serão filtradas, obrigatoriamente devem estar listadas na barra de Filtros do relatório.
* O nome da tabela e da coluna é case sensitive, ou seja, tem diferença entre maiúsculo e minúsculo. O nome deve ser exatamente igual ao que está no modelo.
* Os nomes de **Tabela** e de **Campo** diferenciam maiúsculas de minúsculas, o de **valor** não.
* Os campos ocultos na exibição de relatório ainda podem ser filtrados.
* Evite utilizar acentos e espaços no nome da coluna ou tabela.
* Para mais informações, consulte [essa documentação](https://learn.microsoft.com/pt-br/power-bi/collaborate-share/service-url-filters) da Microsoft.
