在事件操作参数中使用表达式

很多(但不是全部)事件操作参数使您能够使用表达式而不是文字值来指定参数值。当您想要将变量或动态值用于这些值的时候,一般情况下都会执行上述操作。

例如,您可能想要指定一组收件人接收各种通知和提示消息,但是该组的成员经常变动。您可以创建该组的全局常量值,然后在想要将消息发送给该组时使用该全局常量。随后,当组成员更改时,您可以在其中一个地点进行更改(全局常量),然后使用该全局常量的全部事件处理程序都将自动采用这一更改。

用于表达式的语法

使用引号指示文字字符串值。对于数字、日期或布尔值(真/假),系统不要求使用引号,也不允许使用引号。

请考虑下列示例:

  • 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 进行比较。如果属性值无法进行数字转换(例如,如果它包含非数字字符),则会发生运行时错误。

有关用于构建这些规则的表达式和函数的详细信息,请参见应用程序事件系统范围内指南中的“表达式函数”。

相关主题