支持的变量和函数
本文介绍 Yeastar 消息流程设计中支持的变量和函数。
变量
可在支持表达式的组件中 (如 条件组件) 使用变量动态获取存储在当前消息流程中的值。Yeastar
消息流程设计支持以下两种类型的变量:
- Session 变量:存储当前消息会话中的相关信息,在消息流程中全局可用,不依赖特定组件。
更多信息,请参见 Session 变量。
- 组件变量:存储特定组件返回的数据,仅在对应组件添加至消息流程后可用。
更多信息,请参见 组件变量。
- Session 变量
-
变量 类型 说明 示例值 $Session.contactNumber String 客户号码。 "15812340987" $Session.channelNumber String 消息渠道号码。 "LC00113" $Session.contactName String 与客户号码匹配的联系人的姓名。 "Leo Bell" $Session.contactFirstName String 与客户号码匹配的联系人的名称。 "Leo" $Session.contactLastName String 与客户号码匹配的联系人的姓氏。 "Bell" - 组件变量
-
注:
- 在将下表中的组件添加到消息流程中后,系统将组件的返回信息存储在相应的变量中。支持表达式的组件可以在整个消息流程中使用这些变量。
- 由于同一消息流程中可添加多个相同组件,系统会按照添加顺序为每个组件 ID 编号 (如 Menu 1、Menu 2)。为确保正确获取到指定组件的输出结果,使用变量时需带上对应的编号。
函数
函数用于判断条件和处理数据,实现对消息流程的灵活控制。Yeastar 消息流程设计支持以下函数:
Boolean
- AND
- 对两个或多个条件执行逻辑 “与” 运算,仅当所有条件同时满足时才返回
True。- 语法
-
FX_AND(condition1,condition2, ...)- 请求类型:Boolean
- 响应类型:Boolean
- 示例
-
FX_AND(FX_EQUAL($Menu1.reveivedMessage,"1"), FX_EQUAL($Session.contactNumber,"15812340987"))
- OR
- 对两个或多个条件执行逻辑 “或” 运算,只要任一条件满足就返回
True。
- NOT
- 对单个条件执行逻辑 “非” 运算,返回相反的布尔值。
- EQUAL
- 验证两个值是否相等 (值和数据类型均相同)。
- 语法
-
FX_EQUAL(value1,value2) - 示例
-
FX_EQUAL($Session.contactNumber,"15812340987")
- NOT_EQUAL
- 验证两个值是否不相等。
- CONTAINS
- 验证第一个字符串是否包含第二个字符串。
- 语法
-
FX_CONTAINS(value1,value2) - 示例
-
FX_CONTAINS($GetCompanyContactInfo1.company,"Yeastar")
- GREATER_THAN
- 验证第一个值是否大于第二个值。
- 语法
-
FX_GREATER_THAN(value1,value2)- 请求类型:Integer
- 响应类型:Boolean
- 示例
-
FX_GREATER_THAN($DatabaseAccess1.nonQueryResult,20)
- GREATER_THAN_OR_EQUAL
- 验证第一个值是否大于或等于第二个值。
- LESS_THAN
- 验证第一个值是否小于第二个值。
- LESS_THAN_OR_EQUAL
- 验证第一个值是否小于或等于第二个值。
- TO_BOOLEAN
- 将指定值转换为布尔类型。注: 如果参数是字符串
"0"、"False"或null,则此函数返回False。- 语法
-
FX_TO_BOOLEAN(value)- 请求类型:Any
- 响应类型:Boolean
- 示例
-
FX_TO_BOOLEAN($GetExtensionStatus1.currentProfileName)
String
- CONCATENATE
- 执行字符串拼接操作,合并多个字符串。
- TRIM
- 移除指定字符串开头和结尾的多余字符 (例如空格、换行符等)。
- LEFT
- 从字符串开头提取指定数量的字符。
- MID
- 从指定位置开始提取指定长度的字符。
- 语法
-
FX_MID(text,start_position,length)- 请求类型:
text: Stringstart_position: Integerlength: Integer
- 响应类型:String
- 请求类型:
- 示例
-
FX_MID("13800138000",4,4)
- RIGHT
- 从字符串的末尾开始提取指定数量的字符。
- UPPER
- 将指定文本字符串中的所有字母转换为大写。
- 语法
-
FX_UPPER(text) - 示例
-
FX_UPPER("Yeastar")
- LOWER
- 将指定文本字符串中的所有字母转换为小写。
- REPLACE
- 将指定的子字符串替换为另一个子串。
- REPLACE_REG_EXP
- 使用正则表达式匹配文本中的内容,并替换为指定字符串。
- JSON_GET_STRING
-
根据指定的 key 从 JSON 对象中获取对应的字符串值。
- TO_STRING
- 将指定值转换为字符串。
- 语法
-
FX_TO_STRING(value) - 示例
-
FX_TO_STRING(10086)
Date Time
- NOW
- 返回当前的日期和时间。
Number
- LEN
- 返回文本字符串中的字符个数。
- SUM
- 对两个或多个 32 位整型数值求和。
- 语法
-
FX_SUM(value1,value2,...) - 示例
-
FX_SUM(100,200,300)
- SUM_LONG
- 对两个或多个 64 位整型数值求和。
- NEGATIVE
- 返回 32 位整型数值的相反数 (负值)。
- NEGATIVE_LONG
- 返回 64 位整型数值的相反数 (负值)。
- 语法
-
FX_NEGATIVE_LONG(value) - 示例
-
FX_NEGATIVE_LONG(1000000000)
- MULTIPLY
- 对两个或多个 32 位整型值进行乘法运算。
- MULTIPLY_LONG
- 对两个或多个 64 位整型值进行乘法运算。
- DIVIDE
- 对两个 32 位整型值进行除法运算,将第一个值除以第二个值。
- DIVIDE_LONG
- 对两个 64 位整型值进行除法运算,将第一个值除以第二个值。
- 语法
-
FX_DIVIDE_LONG(value1,value2)- 请求类型:Integer
- 响应类型:Integer
- 示例
-
FX_DIVIDE_LONG(10000000000,2000000000)
- ABS
- 返回 32 位整型值的绝对值 (非负数)。
- 语法
-
FX_ABS(value)- 请求类型:Integer
- 响应类型:Integer
- 示例
-
FX_ABS(-100)
- ABS_LONG
- 返回 64 位整型值的绝对值 (非负数)。
- 语法
-
FX_ABS_LONG(value)- 请求类型:Integer
- 响应类型:Integer
- 示例
-
FX_ABS_LONG(-10000000000)
- GET_TABLE_ROW_COUNT
- 返回表格中的行数。
- 语法
-
FX_GET_TABLE_ROW_COUNT(table)- 请求类型:不限
- 响应类型:Integer
- 示例
-
FX_GET_TABLE_ROW_COUNT($DatabaseAccess1.queryResult)
- GET_LIST_ITEM_COUNT
- 返回列表中的项数。
- 语法
-
FX_GET_LIST_ITEM_COUNT(list)- 请求类型:不限
- 响应类型:Integer
- 示例
-
FX_GET_LIST_ITEM_COUNT($DatabaseAccess1.queryResult)
- JSON_GET_INTEGER
-
根据指定的 key 从 JSON 对象中获取对应的整数值。
- TO_INTEGER
- 将指定值转换为 32 位整型值。
- 语法
-
FX_TO_INTEGER(value)- 请求类型:String
- 响应类型:Integer
- 示例
在本例中,将字符串 "12345" 转换为整型,函数返回 12345。FX_TO_INTEGER("12345")
- TO_LONG
- 将指定值转换为 64 位整型值。
- 语法
-
FX_TO_LONG(value)- 请求类型:String
- 响应类型:Integer
- 示例
-
FX_TO_LONG("1234567890123")
Object
- GET_TABLE_CELL_VALUE
- 获取表格中指定行和列的值。
- GET_LIST_ITEM
- 获取列表中指定索引位置的值。
- 语法
-
FX_GET_LIST_ITEM(list,index)-
请求类型:
-
list:不限 -
index:Integer
-
- 响应类型:Object
-
- 示例
-
FX_GET_LIST_ITEM($DatabaseAccess1.queryResult,2)
- GET_JSON_ARRAY_ITEM
- 从 JSON 数组中指定索引的对象中获取指定字段的值。
- JSON_GET_OBJECT
-
根据指定的 key 从父级 JSON 对象中获取对应的嵌套 JSON 对象。