DNATech :: 🚀 Filtrando os dados de forma "relacional" através SDU/APSDU/MPSDU 🥷💻

_Créditos da imagem: e1.pxfuel.com


🚀 Filtrando os dados de forma "relacional" através SDU/APSDU/MPSDU 🥷💻

## Filtrando os dados de forma "relacional" através SDU/APSDU/MPSDU (Sim, são todos os mesmos)

🧠 A Regra de Ouro:

Tabelas abertas SEMPRE possuem sufixo (1).

Exemplo:

🔍 Tabela: SC5990 → Aberta como: SC59901

Com isso em mente, vamos ao processo:

⚔️ A Jornada Relacional:

1) Filtre a Tabela Principal. 

	```
    SC59901
    Ex.: C5_NUM="000089"
    ```

🥷 Filtrando ao Estilo Samurai 

2) Filtre as Tabelas secundárias usando como referência a tabela principal.

    SC69901

    1. Primeira Forma (Corte da Água Superficial – Ichi no kata: Minamo giri)

    ```
    POSICIONE("SC59901",1,C6_FILIAL+C6_NUM,"C5_FILIAL+C5_NUM")==C6_FILIAL+C6_NUM
    ```

    2. Segunda Forma (Roda da Água – Ni no kata: Mizu guruma)

    ```
    (lSC6:=(if(Type("lSC6")!="L",(FilBrowse("SC69901",{},"C6_FILIAL+C6_NUM==SC59901->(C5_FILIAL+C5_NUM)"),lSC6:=.T.),.T.)).AND.POSICIONE("SC59901",1,C6_FILIAL+C6_NUM,"C5_FILIAL+C5_NUM")==C6_FILIAL+C6_NUM)
    ```

    SB19901

    1. Primeira Forma (Corte da Água Superficial – Ichi no kata: Minamo giri)

    ```
    POSICIONE("SC69901",2,SC59901->C5_FILIAL+B1_COD,"C6_PRODUTO")==B1_COD
    ```

    2. Segunda Forma (Roda da Água – Ni no kata: Mizu guruma)

    ```
    ((lSB1:=if(Type("lSB1")!="L",(FilBrowse("SB19901",{},"B1_COD==SC69901->C6_PRODUTO"),.T.),.T.)).AND.POSICIONE("SC69901",2,SC59901->C5_FILIAL+B1_COD,"C6_PRODUTO")==B1_COD)
    ```

💡 Dica Final:

Garanta que tenha um índice válido e coerente com o filtro, senão nem o melhor dos scripts salva.

🧩 Trabalhar com o Protheus é, muitas vezes, como dominar uma arte marcial:

✨ disciplina, precisão e umas boas gambiarras filosóficas.

⚠️ Todo novo conhecimento adquirido pode ser usado tanto para o bem quanto para o mal.

Use com parcimônia.

Com grande poder (de filtragem relacional), vem grande responsabilidade (de queries otimizadas).

🧠 Lembre-se:

Um POSICIONE mal posicionado pode virar um SELECT do capeta.

🔄 Evite filtros pesados sem índice. Evite fazê-lo em tabelas com muitos registros sem critério.

Você não quer que o DBA venha te caçar no Slack perguntando por que a CPU foi pro espaço.

🧘 Filtre com sabedoria.

Otimize com intenção.

E trate o SQL Server como seu sensei:

respeite-o — ou ele te ensinará na dor.

#Protheus #TOTVS #DNATech #ERP #AdvPL #Automação #FiltragemRelacional #DevSamurai

Torne-se um Sponsor: 🥊(дави)={0.5x[(Налдо)+(Алине)]}🥊

Comentários

Postagens mais visitadas