Fenêtre Filtre des entités
Lorsqu'il est coché, le filtre est appliqué à la vue de FME Data Inspector. Lorsqu'il n'est pas coché, le filtre n'est pas appliqué.
Paramètres
Valeurs
Les colonnes Valeurs peuvent êtres des constantes, des valeurs d'attribut, des paramètres publiés ou des valeurs calculées qui est une combinaison des précédentes. S'il s'agit d'une fonction calculée, la fonction est exécutée sur l'entité actuelle et le résultat est utilisé pour le test.
Tests à effectuer
La colonne Opérateur a pour valeur : =, !=, <, >, <=, >=, Dans la plage, Dans, Comme, Contient, Commence par, Finit par, Contient l'expression régulière, Le type est, Encodable en, L'attribut a une valeur, L'attribut est nul, L'attribut est une chaîne vide, etl'attribut est manquant.
Certains opérateurs de comparaison, tels que = et !=, ont un comportement conventionnel, à l'exception des cas documentés. Lors des comparaisons, les valeurs null, manquantes et vides sont toutes évaluées à tant que chaîne de caractères vide. Ainsi, elles sont considérées comme égales dans le contexte des opérateurs de comparaison. En outre, l'ordre de comparaison suivant est respecté :
Null, manquant, chaîne vide < autre valeurs
Dans le mode automatique, tous les opérateurs sont sensible à la casse sauf Comme, Contient, Commence par, et Finit par.
Les autres opérateurs sont :
Opérateur |
Description |
Exemples |
---|---|---|
In (dans) |
Une liste de valeurs dans laquelle vous testez une certaine valeur. La colonne Valeur de droite contient une liste de valeurs séparées par des virgules. Il est également possible de spécifier des plages de chaînes (par exemple, a-d). Si vous souhaitez tester les valeurs qui contiennent un trait d'union, ces valeurs doivent être placées entre guillemets. Par exemple, si x=LL-27, alors x dans "LL-27", "LL-83" sera vrai. Par contre, x dans LL-27, LL-83 serait faux. Cela est dû au fait que LL-27 et LL-83 sont traitées comme deux chaînes de caractères, LL à 27 et LL à 83. D'un point de vue lexicographique, LL-27 ne se trouve dans aucune de ces deux plages de chaînes. |
X=5, if X In 1,2,3 (no = Failed) X=5, if X In 3-7 (yes = Passed) |
Dans la plage |
Est-ce que la valeur se trouve dans la plage numérique spécifiée ? Dans cette notation, les [] désignent des limites inclusives telles que [0,8] qui correspond à 0<=X<=8, tandis que les ()s désignent des limites exclusives telles que (0,8) qui correspond à 0<X<8. Il est possible d'avoir une limite exclusive et une autre inclusive, comme (0,8). Il est également possible de ne définir aucune limite en laissant un côté vide, comme [0,], qui correspond à tout nombre supérieur ou égal à 0. Cet opérateur n'est pas disponible dans les modes Sensibilité à la casse et Insensibilité à la casse. |
X=3, si X dans la plage [3,8] (yes = Passed) X=3, si X dans la plage (3,8] (no = Failed) |
Comme |
Est ce que la valeur correspond au motif défini ? Notez que la requête générique utilise le symbole pourcentage (%) et non l'astérisque (*). Dans le mode Automatique, cet opérateur est sensible à la casse. Cet opérateur n'est pas disponible dans le mode Numérique. |
X=abcd, if X Like %bc% (yes = Passed) |
Contient une expression régulière |
Est-ce qu'une valeur correspond à une expression régulière ? Cet opérateur n'est pas disponible dans le mode Numérique. |
X=abcd, est-ce que X correspond à l'expression régulière .*bc.* |
Contient |
Est-ce que la valeur de droite apparaît dans la valeur de gauche ? Dans le mode Automatique, cet opérateur est sensible à la casse. Cet opérateur n'est pas disponible dans le mode Numérique. |
X=abcd, if X Contains bc (yes = Passed) |
Commence par |
Est-ce qu'une chaîne de caractères commence par? Dans le mode Automatique, cet opérateur est sensible à la casse. Cet opérateur n'est pas disponible dans le mode Numérique. |
X=abcd, if X commence par a (yes = PASSED) X=abcd, if X Begins With b (no = Failed) |
Finit par |
Est-ce qu'une chaîne de caractères finit par ? Dans le mode Automatique, cet opérateur est sensible à la casse. Cet opérateur n'est pas disponible dans le mode Numérique. |
X=abcd, if X Ends With d (yes = Passed) X=abcd, if X Ends With b (no = Failed) |
Le type est |
Est-ce que la valeur de l'attribut est convertible en l'un des types listés ? Les types inclus sont Entier, Double, Numérique et Booléen. Entier et Double testent si le contenu d'un attribut est représentable respectivement comme un entier de 64 bits ou un nombre à virgule flottante de 64 bits. Numérique teste si la valeur est convertible en un nombre (le comportement est identique à celui de Double). Booléen effectue un test insensible à la casse pour vérifier si la chaîne correspond à l'une des représentations booléennes (Vrai/True, 1, Faux/False, 0). |
X=7, si X est numérique (oui = Passed) X= true, si X est booléen (oui = Passed) |
Encodé en | Est ce que la valeur de l'attribut est encodé dans le bon encodage sans perte de donnée ? |
Si x=本 si l'encodage X est cp392 passed Japanese Windows Si l'encodage DOS Icelandi Failed |
L'attribut a une valeur | Est ce que l'attribut a la valeur ? | Si l'attribut spécifié dans la valeur de gauche correspond (yes =passed) |
L'attribut est Null (nul) |
Est-ce que l'attribut spécifié a une valeur nulle ? |
Si la Valeur à gauche a une valeur nulle (oui=Passed) SI la valeur à gauche n'a pas de valeur nulle (non=Failed) |
L'attribut est une chaîne vide |
Est-ce que l'attribut spécifié a une valeur de type chaîne vide ? |
Si la valeur à gauche est une chaîne vide (oui = Passed) Si la valeur à gauche est une chaîne vide (non = failed) |
L'attribut est manquant |
Est-ce que l'attribut est absent ? |
Si l'attribut spécifié dans la Valeur à gauche est absent (yes=Passed) Si l'attribut spécifié dans la Valeur à gauche est présent (yes=Passed) |
SI vous choisissez un de ces opérateur : L'attribut est vide, l'attribut est nul, ou l'attribut est manquant, la valeur de gauche sera considérée comme un attribut indépendamment de l'icône affichée.
Inverser
Cocher cette case signifie que le test doit être inversé.
Par exemple,
X=abcd, est 'abcde' Contient X si inverser (non = Failed)
X=5, Y=1,2,3,4 est X dans Y si inverser (oui = Passed)
Mode
Quand le Mode est défini à Automatic ou Numeric, Tester compare les opérandes comme des nombres si possible et sinon comme des chaînes de caractères.
Quand le Mode est Sensibilité à la casse, Tester compare les opérandes comme des chaînes de caractères en utilisant une comparaison sensible à la casse et ne s'attend pas à effectuer des conversions numériques.
Quand le Mode est Insensibilité à la casse, Tester compare les opérandes comme des chaînes de caractères en utilisant une comparaison sensible à la casse et ne s'attend pas à effectuer des conversions numériques.
Lorsque le Mode est défini sur Date/Heure, le Tester compare les opérandes en tant que valeurs de date et d'heure FME si possible. Si les données d'entrée ne sont pas au format FME Date, la comparaison sera effectuée sous forme de chaîne et un attribut, fme_expression_warnings{}, sera ajouté à l'entité pour indiquer que cela a été fait.
Astuce : Si vous savez que vos données sont des chaînes de caractères, vous devez définir le mode sur Sensible à la casse ou Insensible à la casse. De cette façon, FME ne perd pas de temps à déterminer pour chaque entité si les données sont représentables sous forme de nombre, mais peut simplement effectuer la comparaison de chaîne immédiatement.
Si vous traitez une chaîne représentée par un nombre comme 4.5 ou 4e5, et si vous définissez le Mode à Automatique ou Numérique, alors elle sera traitée comme un nombre si les autres opérandes sont aussi des nombres.
Par exemple, si le Mode est réglé sur Automatique ou Numérique, " 4E5=400000" passera le test. Si, par contre, vous voulez que "4E5=400000" échoue le test, réglez le Mode sur Sensible à la casse ou Insensible à la casse.
Par exemple, si le Mode vaut Date/Heure, “20180109141824.9024787-08:00=20180109131824.9024787-09:00” réussira le test.
Le paramètre Critère de réussite définit comment les clauses sont interprétées pour classer les entités sortantes. Les choix possibles sont : Un test (OR) , Tous les tests (AND), et Test composite.
Voici 3 scénarii explicatifs.
Scénario | Règle de validation | Description |
---|---|---|
Si un test passe, alors l'entité est classée en Passed. | Un test (OU) | Dans ce cas, si l'une des clauses du test est vraie, alors l'entité est réussie. Il s'agit d'un test OU (test1 OU test2 OU test3). Si l'une des clauses est vraie, alors le résultat est vrai. |
Tous les tests sont nécessaires pour que l'entité entrante soit classée comme Passed. | Tous les tests (ET) |
Il s'agit d'un test plus strict car tous les tests doivent être réussis pour que le résultat soit vrai (test 1 ET test 2 ET test 3). C'est un test AND en anglais. |
Créer sa propre expression. Ce mode est utile lorsque vous avez besoin d'un contrôle fin sur ce que vous voulez que le filtre évalue. Si vous sélectionnez ce mode, un champ Test composite est activé. |
Test composite |
Si, par exemple, vous voulez vérifier si la valeur d'un attribut est compris entre 5 et 10, ou égal à 99, vous pouvez mettre en place trois tests : Clause 1 : x > 5 Clause 2 : x < 10 Clause 3 : x = 99 (où x est l'attribut du champ Valeur de gauche) :
Pour obtenir les résultats désirés, vous souhaitez que la clause 1 et la clause 2 soient vraies (entre 5 et 10) ou que la clause 3 soit vraie (égale à 99). Dans ce cas, le choix des modes Un test ou Tous les tests ne répondra pas à l'exigence de test. Vous pouvez cependant choisir Test composite et entrer l'expression suivante dans le champ Expression du test : ((1 AND 2) OR 3) Les chiffres ci-dessus correspondent aux clauses de test définies dans le tableau "Clauses de test". À la lecture, l'expression composite ci-dessus indique que "la clause 1 ET la clause 2 doivent être satisfaites, OU la clause 3 doit être vraie". |
L'expression à utiliser lorsque le paramètre Critères de réussite est Test composite. L'expression peut se référer à une clause de la table Tests en utilisant le numéro de la ligne du test à vérifier.
Exemples
Attribut | Test | Resultat |
---|---|---|
x=abcd | X contient abcd | Passed |
x=a, Y=big | X dans Y | Failed |
X=100 | X < 200 | Passed |
X=4E5 | X=400000 |
PASSED, si le mode comparaison est automatique. Failed dans les modes Sensibilité à la casse et Insensibilité à la casse. |
Exemples où le Mode doit être Automatique ou Numérique :
@Area() < 100
@Value(numLanes) > 2
Exemple quand Mode est défini à Sensibilité à la casse ou Insensibilité à la casse :
"Joe" = "Jerry"
Rechercher dans FME Community
La boîte de dialogue des entités de filtrage fonctionne de la même manière que le Transformers Tester dans FME Workbench. Recherchez des exemples et des informations sur ce Transformers dans FME Community.