Cette section aide à se familiariser avec la syntaxe OData pour définir les filtres à appliquer sur les requêtes de lecture des ressources.
Les règles évoquées concernent par conséquent uniquement la méthode  et le paramètre : $filter

Opérateurs

Ne pas utiliser les syntaxes classiques des opérateurs de comparaison tels que =, !=, <> mais utiliser la syntaxe requise pour OData : eq, ne, …

numero = 'DUPUIS'
numero <> 'DUPUIS'
numero eq 'DUPUIS'
numero ne 'DUPUIS'

Opérateurs et fonctions en minuscule

Tous les opérateurs et toutes les fonctions OData sont à exprimer en minuscules. Exemple ne pas utiliser And mais and

numero eq 'DUPUIS' And StartsWith(toLower(intitule),'DUP')
numero eq 'DUPUIS' and startswith(tolower(intitule),'DUP')

Délimitateur de chaînes

Pour entourer des constantes chaînes de caractères, ne pas utiliser le double quote (guillemet) " mais le simple quote (apostrophe) '

numero eq "DUPUIS"
startswith(intitule,"CAR")
numero eq 'DUPUIS'
startswith(intitule,'CAR')

Séparateurs de paramètres

Pour séparer des paramètres dans une fonction, ne pas utiliser le point virgule ; mais la virgule ,

startswith(intitule;'DUP')
startswith(intitule,'DUP')

Espaces entre propriétés, opérateurs et valeurs

Ajoutez obligatoirement des espaces avant et après les opérateurs

numeroeq'DUPUIS'
numero eq 'DUPUIS'

Casse sensible pour comparaisons

Les comparaisons étant sensibles à la casse, pour effectuer des comparaisons insensibles à la casse utilisez tolower ou toupper.

startswith(intitule,'dup')
contains(intitule,'DUP')
startswith(tolower(intitule),'dup')
contains(toupper(intitule),'DUP')

Casse sensible pour les noms des propriétés

Les noms des propriétés sont sensibles à la casse et doivent être mentionnées telles que documentées dans le manuel de référence de l’API.

journal/typenumerotation eq 'Manuelle' and journal/Type eq 'VTE'
journal/typeNumerotation eq 'Manuelle' and journal/type eq 'VTE'

Séparateur de sous ressource

Pour tester une propriété d’une sous ressource ne la séparez pas par un point . mais par une barre oblique (slash) /

journal.code eq 'VTE'
startswith(tolower(tiers.adresse.codePostal),'75')
journal/code eq 'VTE'
startswith(tolower(tiers/adresse/codePostal),'75')

Tests de dates

Pour tester des dates ne pas exprimer les dates en chaînes et utilisez cast(..,'Date').

dateDebut ge '2020-01-01' and dateFin le '2020-12-31'
cast(dateDebut,'Date') ge 2020-01-01 and cast(dateFin,'Date') le 2020-12-31

Opérateurs et fonctions implémentées dans l’API

Vérifiez la liste des opérations et fonctions OData éventuellement non implémentées dans l’API pour leur substituer des opérations ou fonctions supportées.
Exemples : il est possible de remplacer l’opérateur in par l’opérateur or et, selon l’usage, la fonction substring par contains ou startswith.

code  ('VTE','ACH')
(code,0,1) eq 'V'
code eq 'VTE' or code eq 'ACH'
startswith(code,'V')