在事件操作参数中使用表达式
很多(但不是全部)事件操作参数使您能够使用表达式而不是文字值来指定参数值。当您想要将变量或动态值用于这些值的时候,一般情况下都会执行上述操作。
例如,您可能想要指定一组收件人接收各种通知和提示消息,但是该组的成员经常变动。您可以创建该组的全局常量值,然后在想要将消息发送给该组时使用该全局常量。随后,当组成员更改时,您可以在其中一个地点进行更改(全局常量),然后使用该全局常量的全部事件处理程序都将自动采用这一更改。
用于表达式的语法
使用引号指示文字字符串值。对于数字、日期或布尔值(真/假),系统不要求使用引号,也不允许使用引号。
请考虑下列示例:
- CONDITION( "CreditLimit" < "500000" )
系统将比较双方都视作文字字符串值,并在执行事件操作过程中相应地作出处理。这些值以字符串形式按字母顺序进行比较。因此,该条件将导致假的结果,因为 "C" 字母在 Unicode 编码规则中的排序高于 "5"。
- CONDITION( CreditLimit < 500000 )
系统返回一个语法错误,因为它无法将“CreditLimit”识别为有效函数。
- CONDITION( P( "CreditLimit" ) > "500000" )
比较的双方有效,但是同样,数字值 500000 视为文字字符串,并与返回的“信用额度”字段比较。属性值不是可输入的对象,所以比较操作取决于对方的表达式。在本例中,"500000" 是文字字符串值(由引号标注),所以属性值按字母顺序作为字符串与其进行比较,而且不一定会返回有效结果。
- CONDITION( E(MG_CurrentSite) IN ("MI";"ZZ"))
为所有运行事件设置 MG_CurrentSite 参数。它用于使事件操作根据当前站点的值退出处理更容易。完成操作可用于只使一个处理程序只为特定站点操作。
- CONDITION( P( "CreditLimit" ) > 500000 )
系统将使用“CreditLimit”属性的当前值,但是,这次将作为数字值按数学方式与数字常量 500000 进行比较。如果属性值无法进行数字转换(例如,如果它包含非数字字符),则会发生运行时错误。
有关用于构建这些规则的表达式和函数的详细信息,请参见应用程序事件系统范围内指南中的“表达式函数”。