Utilisation des fonctions de filtre

Les fonctions de filtrage sont essentiellement utilisées pour récupérer une valeur dans un emplacement donné et la retourner sous forme de chaîne entre guillemets simples. Cela s'applique à tous les types de fonctions de filtrage, qui comprennent notamment les fonctions suivantes :

Les fonctions de filtrage ont pour unique objectif de construire des expressions pour des clauses SQL WHERE, qui sont utilisées dans le mot-clé FILTER(). Par conséquent, la fonction FILTER() indépendante est utilisée uniquement pour la construction d'une expression pour une clause SQL WHERE utilisant une expression autre que PROPERTY, V (variable), E (paramètre d'événement), SV (variable de session), GC (constante commune) ou METHODPARM (paramètre de méthode), ces dernières ayant leurs propres fonctions de filtrage pouvant être utilisées sans la fonction FILTER().

Par exemple, supposons qu'un paramètre appelé Préfixe est transmis à votre événement. Cet événement est conçu pour exécuter une action donnée sur tous les articles dont l'ID commence par ce préfixe. Vous pourriez charger ces articles à l'aide d'une action Charger collection IDO contenant les paramètres suivants :


IDO("SLItems")
FILTER( SUBSTITUTE("Item LIKE {0}", FILTER( E(Prefix) + "*" ) ) )
PROPERTIES("Item, Description")

Supposez maintenant que votre événement se déclenche et que le préfixe AL lui est transmis.

L'expression contenue à l'intérieur du premier mot-clé FILTER() fonctionne ainsi :

  • E(Prefix) + "*" donne : AL*
  • Le mot-clé FILTER() autour qui le met entre guillemets simples : 'AL*'
  • La fonction SUBSTITUTE() transforme cela en : "Item LIKE 'AL*' "

La chaîne qui en résulte est une clause SQL WHERE idéale, car le service d'exécution des IDO remplace l'astérisque par un signe pourcentage que SQL Server comprend.

Remarque:  D'autre part, une expression FE(Prefix) donnerait " 'AL' ", qui ne permettrait pas d'avoir l'astérisque entre guillemets simples là où cela serait nécessaire. Nous reportons donc "l'habillage" par les guillemets simples au moment approprié.

Le même résultat pourrait être obtenu en utilisant un autre niveau de fonction SUBSTITUTE() ou des concaténations de chaînes utilisant des apostrophes entre guillemets, mais la fonction FILTER() est plus propre.