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
Comentários
Postar um comentário