支持的变量和函数
本文介绍 Yeastar 通话流程设计中支持的变量和函数。
变量
变量用于动态获取和传递数据。Yeastar 通话流程设计支持以下两种类型的变量:
- Session 变量:存储会话的相关信息,在通话流程中全局可用,不依赖特定组件。
更多信息,请参见 Session 变量。
- 组件变量:存储特定组件返回的数据,仅在对应组件添加至通话流程后可用。
更多信息,请参见 组件变量。
- Session 变量
-
变量 类型 说明 示例值 $Session.ani String 来电号码。 "15812340987" $Session.callid String 通话的唯一标识 ID。 "1751336277.2" $Session.did String 通话流程关联的 DID 号码。 "5503301" $Session.flowNum String 通话流程关联的分机号码。
"6900" $Session.transferingNum String 若通话由其他号码转接,该字段返回转接号码。
"1000" - 组件变量
-
注: 由于同一通话流程中可添加多个相同组件,系统会按照添加顺序为每个组件编号 (如菜单 1、菜单 2)。为确保正确获取到指定组件的输出结果,使用变量时需带上对应的编号。
函数
函数用于判断条件和处理数据,实现对通话流程的灵活控制。Yeastar 通话流程设计支持以下函数:
Boolean
- AND
- 对两个或多个条件执行逻辑 “与” 运算,仅当所有条件同时满足时才返回
True。- 语法
-
FX_AND(condition1,condition2, ...)- 请求类型:Boolean
- 响应类型:Boolean
- 示例
-
FX_AND(FX_EQUAL($UserInput1.userInput,"1"), FX_EQUAL($Session.ani,"1001"))
- OR
- 对两个或多个条件执行逻辑 “或” 运算,只要任一条件满足就返回
True。
- NOT
- 对单个条件执行逻辑 “非” 运算,返回相反的布尔值。
- EQUAL
- 验证两个值是否相等 (值和数据类型均相同)。
- 语法
-
FX_EQUAL(value1,value2) - 示例
-
FX_EQUAL($Session.ani,"1001")
- NOT_EQUAL
- 验证两个值是否不相等。
- CONTAINS
-
验证第一个字符串是否包含第二个字符串。
- 语法
-
FX_CONTAINS(value1,value2) - 示例
-
FX_CONTAINS($GetExtensionStatus1.currentProfile,"Available")
- GREATER_THAN
- 验证第一个值是否大于第二个值。
- 语法
-
FX_GREATER_THAN(value1,value2)- 请求类型:Integer
- 响应类型:Boolean
- 示例
-
FX_GREATER_THAN($GetQueueInfo1.callsWaiting,5)
- GREATER_THAN_OR_EQUAL
- 验证第一个值是否大于或等于第二个值。
- LESS_THAN
- 验证第一个值是否小于第二个值。
- LESS_THAN_OR_EQUAL
- 验证第一个值是否小于或等于第二个值。
- TO_BOOLEAN
-
将指定值转换为布尔类型。
- 语法
-
FX_TO_BOOLEAN(value)- 请求类型:不限
- 响应类型:Boolean
- 示例
-
FX_TO_BOOLEAN($GetExtensionStatus1.currentProfile)
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 位整型值进行乘法运算。
- 语法
-
FX_MULTIPLY_LONG(value1,value2,...)- 请求类型:Integer
- 响应类型:Integer
- 示例
-
FX_MULTIPLY_LONG(100000,20000)
- 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)
- JSON_GET_OBJECT
-
根据指定的 key 从父级 JSON 对象中获取对应的嵌套 JSON 对象。