滤波器特性对话框
![关闭](http://www.baooytra.com/docs/fme/2016.0/html/FME_Desktop_Documentation/FME_Workbench/Skins/Default/Stylesheets/Images/transparent.gif)
选中后,滤镜应用于数据检查器视图。未选中后,未应用过滤器。
参数
这个主题中的内容与Tester转换器的内容非常匹配,但是有足够的差异来防止直接复制和粘贴。其中一个的任何更改可能都应该同时应用于另一个。
![关闭](http://www.baooytra.com/docs/fme/2016.0/html/FME_Desktop_Documentation/FME_Workbench/Skins/Default/Stylesheets/Images/transparent.gif)
的通过标准定义在传入功能的最终分类中如何解释多个子句。可能的选择是:所有的测试(和),一次测试(或), 和复合试验.
下面是对这三种选择和相关场景的描述。
场景 | 通过标准 | 描述 |
---|---|---|
要将一个特性分类为PASSED,需要进行一次测试。 | 一次测试(或) | 在这种情况下,只要一个测试条款是真的,那么就会传递该功能。这是一个或测试(test1或test2或test3)。如果任何一个是真的,那么结果是真的。 |
要将某个特性分类为已通过,需要进行所有测试。 | 所有的测试(和) | 这比一个测试(或)更严格(或),因为所有测试必须按顺序传递,因为结果是真的(test1和test2和test3)。 |
创建您自己的测试表达式。 当您需要细粒度控制希望过滤器评估的内容时,这是非常有用的。如果选择此模式,将出现复合表达式字段。 |
复合试验 | 例如,如果您想要检查一个属性的值是否在5到10之间,或者等于99,您可以设置三个测试子句: 条款1:x> 5 条款2:x< 10 条款3:x= 99. (x是左值字段中选择的属性): 为了正确地获得所需的结果,您要求子句1和子句2为真(在5和10之间),OR子句3为真(等于99)。 在这种情况下,选择“一个测试”或“所有测试”模式将不能满足测试需求。但是,您可以选择Composite Test并在Composite expression字段中输入以下表达式: ((1和2)或3) 上面的数字对应于“测试子句”表中定义的测试子句。当阅读时,上面的复合表达式表示“必须满足第1条和第2条,或必须满足第3条”。 |
![关闭](http://www.baooytra.com/docs/fme/2016.0/html/FME_Desktop_Documentation/FME_Workbench/Skins/Default/Stylesheets/Images/transparent.gif)
要使用的表达式通过标准参数是复合试验.该表达式可以引用测试条款表使用该子句的行号。
![关闭](http://www.baooytra.com/docs/fme/2016.0/html/FME_Desktop_Documentation/FME_Workbench/Skins/Default/Stylesheets/Images/transparent.gif)
值
的价值列(操作数)可以是文字常量、属性值、发布的参数或计算值(上述参数的组合)。如果它是一个计算函数,则该函数将在当前特性上执行,并将结果用于测试。
运营商
的操作符列是以下之一:=,!=,<,>,<=,> =,在,之间,喜欢,匹配正则表达式,包含,开始于,以。。结束,属性为空,属性是空字符串,属性是失踪.
一些操作符,如=和!=,具有常规行为,但这里有文档说明。当比较操作符=,!=,<,>,<=,>=应用于null, missing和空字符串值时,这三个操作符都将得到空字符串。因此,在这些比较操作符的上下文中,它们是成对相等的。此外,还考虑了以下比较顺序:
null,缺少,空字符串<数字<其他值
其他不太传统的操作在这里进行更详细的描述:
操作符 |
描述 |
例子 |
在 | 您正在测试某个值的值列表。的正确的价值是用逗号分隔的值列表或范围。 | X=5, if X In 1,2,3 (no = FAILED) X=5, if X In 3-7 (yes = PASSED) |
之间 | 值是否在最小和最大值之间。的正确的价值由两个逗号分隔的值或范围组成。指定的范围包括最小和最大值。 | X=5, if X Between 2,3 (no = FAILED) x = 5,如果x在1,10之间(是=通过) |
喜欢 | 允许您使用通配符查询。请注意,通配符查询使用百分比符号(%),而不是星号(*)。 该操作符在数字模式下不可用。 |
X=abcd, if X Like %bc% (yes = PASSED) |
匹配正则表达式 (高级FME) |
值是否匹配正则表达式? 该操作符在数字模式下不可用。 |
X=abcd,如果X匹配正则表达式 |
包含 | 右值是否出现在左值中? 该操作符在数字模式下不可用。 |
X=abcd,如果X包含bc (yes = PASSED) |
开始于 | 字符串是否从此开始......? 该操作符在数字模式下不可用。 |
x = abcd,如果x从a开始(是=通过) x = abcd,如果x从b开始(no =失败) |
以。。结束 | 一个字符串结束了吗? 该操作符在数字模式下不可用。 |
x = abcd,如果x以d结尾(是=通过) x = abcd,如果x以b结尾(no =失败) |
属性为空 | 指定的属性是否具有空值? 该操作符在数字模式下不可用。 |
如果在左值中指定的属性具有空值(是=传递) 如果在左值中指定的属性没有空值(no =失败) |
属性是空字符串 | 指定的属性是否具有空字符串值? 该操作符在数字模式下不可用。 |
如果左值中指定的属性是空字符串(yes=PASSED) 如果在左值中指定的属性不是空字符串(no=FAILED) |
属性是失踪 | 特性上是否没有指定的属性? 该操作符在数字模式下不可用。 |
如果在左值中指定的属性在特性上不存在(yes=PASSED) 如果在特征上存在左值中指定的属性(no =失败) |
如果您选择其中一个运营商:属性是空字符串,属性为空,或属性是失踪,左值无论显示的图标如何,都将被视为属性名称。强制过滤器使用属性的值,attrName
,作为属性名称,您必须明确地键入@Value(attrname)
到左值字段。
字符串(即范围。广告
)也可以指定。如果要测试包含连字符的值,这些值应该用引号括起来。例如,如果x = LL-27
,然后x”LL-27”、“ll - 83”
是真的。另一方面,在LL-27 x, ll - 83
会是假的。这是因为LL-27.
和ll - 83
将被视为两个空字符串范围,因为当视为字符串时,数字的顺序比字母的顺序要早。
否定
如果“
例如,
X=abcd,是'abcde'包含X如果被否定(回答no = FAILED)
x = 5,y = 1,2,3,4是y如果否定(答案是=通过)
模式
什么时候模式被设定为自动或者数字如果可能的话,滤波器将使操作数与数字进行比较,并且否则为字符串。
什么时候模式被设定为字符串,筛选器将把操作数比较为字符串,并且不会尝试数字转换。
让我们引用可以被解释为数字的字符串,例如“4E5.
“,作为字母数字字符串。对于字母数字字符串,如果您设置模式来自动或者数字,如果另一个操作数也是字母数字字符串,则该操作数将被视为数字,而且使用的操作符在数字模式。
例如,如果模式被设定为自动或者数字”,4E5 = 400000.
“将通过测试。如果,另一方面,你想要“4E5 = 400000.
“为了不通过测试,设定。模式来字符串.
例子
属性 | 测试条件 | 结果 |
---|---|---|
x = abcd | X包含abcd | 通过了 |
x = a, Y =大 | X Y | 失败的 |
X = 100 | X < 200 | 通过了 |
X = 4 e5 | X = 400000 | 如果比较模式设置为“自动”,则通过 如果比较模式设置为字符串,则失败 |
“比较模式”为“自动”:
@area()<100
@ value (numLanes) > 2
比较模式设置为String:
“乔”=“杰瑞”
搜索FME知识中心
过滤器功能对话框以与FME工作台的测试器变压器类似的方式操作。搜索有关此变压器的示例和信息FME知识中心.