Filtrer les résultats ($filter)
Le modificateur $filter restreint les éléments retournés par une extraction (GET).
Syntaxe de base
GET /api/Entity/Customer?$filter=NomClient eq 'Les entreprises de Jacques'
- Sous-champs supportés :
/api/Entity/Product?$filter=GroupeProduit.CodeGroupe eq 'vêtements' - Chaînage avec
and:...$filter=GroupeProduit.CodeGroupe eq 'vêtements' and PrixFinal gt 5.75 - Numériques avec point décimal ; textes et dates entre apostrophes, dates au format
yyyy-MM-dd:$filter=Fiche_DerniereModification gt '2024-02-10'
Les opérateurs
| Opérateur | Alias | Sens |
|---|---|---|
| EQUALS | eq | égal |
| NOTEQUALS | ne | différent |
| GREATERTHAN | gt | plus grand |
| GREATERTHANEQUALS | ge | plus grand ou égal |
| LESSTHAN | lt | plus petit |
| LESSTHANEQUALS | le | plus petit ou égal |
| CONTAINS | — | contient (champs textes seulement) |
| DOESNTCONTAINS | — | ne contient pas (champs textes seulement) |
| IN (liste) | in | dans une liste : NoCompteGL in ('1000','1100','2000') |
Attention : tous les champs ne sont pas filtrables partout
Chaque système impose ses restrictions (elles viennent des SDK/API natifs des ERP). Exemples connus côté Acomba (seuls champs filtrables) :
Customer:NoClient(eq/in),NoUniqueSystemeSource(eq/in),Fiche_DerniereModification(gt/ge/lt/le)Product:NoProduit,NoUniqueSystemeSource,Fiche_DerniereModification,EstActifGLAccount:NoCompteGL(eq/in),ValeurAuCompte ne 0- Factures (
CustomerInvoice,SupplierInvoice...) :NoFacture,NoUniqueSystemeSource,Fiche_DerniereModification,DateFacture,EstActif(+Fournisseur_Nosur SupplierInvoice) CustomerInvoicePayment: filtre spécialCUSTOM_FILTER_UNPAID_INVOICES_ONLY
Avantage supporte généralement les opérateurs 1 à 8 (souvent aussi InList) sur les entités principales ; QuickBooks : eq/ne/gt/ge/lt/le avec des limitations propres.
La référence complète est la page « Liste des filtres par système » :
https://logiciel.solutioninfomedia.com/erpconnector/liste-des-filtres-par-systeme/
Pour savoir si UN champ précis est filtrable et avec quels opérateurs, la matrice SDK
Capabilities fait autorité (outil check_field_support avec op=filter).