Applicazione dei filtri alle risorse
Caso: un assistente AI deve analizzare le vendite di un anno senza scaricare tutte le righe documento.
Filtri pronti
| Domanda | Risorsa | RecordSelection |
|---|---|---|
| Documenti di un tipo in un anno | MCPDocumentiT | cod_tipodoc='<COD_TIPODOC>' and num_anno=<ANNO> |
| Righe di una famiglia in un anno | MCPDocumentiR | cod_tipodoc='<COD_TIPODOC>' and num_anno=<ANNO> and cod_famiglia='<COD_FAMIGLIA>' |
| Solo fornitori | CliFor | ind_clifor='F' |
| Articoli di una sottofamiglia | Articoli | cod_sfamiglia='<COD_SFAMIGLIA>' |
| Documenti di un cliente | MCPDocumentiT | ind_clifor_c='C' and cod_clifor_c='<COD_CLIFOR>' |
| Codice articolo che contiene un testo | Articoli | cod_art like '%<TESTO>%' |
Regole
- Usa i nomi di campo esatti: li trovi nella scheda della risorsa.
- Stringhe tra apici singoli; numeri senza apici (
num_anno=2025). - Codifica l'intero valore di
RecordSelectionnell'URL (--data-urlencodein curl,Uri.EscapeDataStringin C#,URLSearchParamsin JavaScript). - Preferisci i filtri su campi presenti già sulla riga (
cod_famiglia,cod_tipodoc,num_anno) alle unioni fatte lato client. - Per la ricerca testuale con ordinamento usa la query strutturata.
Sicurezza
RecordSelection è un frammento SQL. Se il valore arriva da un utente:
- non concatenarlo così com'è: raddoppia gli apici (
'→'') o usa la query strutturata, dove il valore viaggia separato dal campo; - limita i campi filtrabili a una lista nota.