更新时间:2024-07-10 GMT+08:00
分享

内置函数

  • 使用如下内置函数进行多重运算时,子表达式要加括号。
  • 条件表达式中,使用==判断,仅适用于字符和数字,不适用于对象和列表(null判断除外)。
表1 内置列表

函数名

描述

length()

获取字符串长度。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,您可以通过如下表达式获取流程变量Answer的字符串长度:FLOW.Answer.length(),结果为5。

size()

当变量为数组和对象时获取其中的元素个数。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:[1,2,3,4,5],您可以通过如下表达式获取流程变量Answer的字符串长度:FLOW.Answer.size(),结果为5。

说明:

流程变量定义的对象和数组,若没有设置缺省值也没有赋值,则值不会为null,且size为0。

divideString(index,“分割符”)

字符串分割。

  • index:从1开始,表示取第几个字符。
  • 分割符:若分隔符为"."、"$"、"+"、"|" 和 "*" 等正则特殊字符,需要使用方括号包装,例:FLOW.XXX.divideString(index,"[+]")

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:{"UniqueID":"123","ServiceID":"1234","orderid":"12345"},如果您需要获取流程变量Answer的"orderid":"12345",请使用如下表达式:FLOW.Answer.divideString(3,“,”)

说明:

列表或对象使用中括号或者点取值后,若需要调用divideString内置函数,则应先将值缓存至字符型流程变量,再进行调用。

substring(beginIndex, endIndex)

字符串截取。

  • beginIndex:从0开始,0表示第1个字符,表示从第几个字符开始截取。
  • endIndex:表示到第几个字符结束截取,不包含endIndex对应的字符。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:"orderid":"12345",如果您需要获取流程变量Answer的12345,请使用如下表达式:FLOW.Answer.substring(11, 16)

startsWith("xxx")

判断变量是否以某个字符串开头。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,如果您需要判断流程变量Answer是否以字符a开头,请使用如下表达式:FLOW.Answer.startsWith("a"),结果为是,通常用于条件表达式。

endsWith("xxx")

判断变量是否以某个字符串结尾。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,如果您需要判断流程变量Answer是否以字符e结尾,请使用如下表达式:FLOW.Answer.endsWith("e"),结果为是,通常用于条件表达式。

null值的判断

判断变量是否等于null值。

使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:null。如果您需要判断流程变量Answer是否为null,请使用如下表达式:FLOW.Answer==null或FLOW.Answer!=null

加法运算:+

可通过加法运算进行如下运算:

  • 字符串+字符串=字符串拼接
  • 字符串+整型=字符串拼接
  • 整型+整型=加法计算

使用场景示例:例如有一个流程变量Str,FLOW.Str的值为:“123”,有一个流程变量Num,FLOW.Num的值为:123,

如果您使用如下表达式:FLOW.Str+FLOW.Num,结果为字符串:“123123”。

除法运算:/

对数字进行除法。

使用场景示例:例如有一个流程变量Num1,一个流程变量Num2,如果您使用如下表达式:FLOW.Num1/FLOW.Num2,将其结果赋值给另外一个流程变量result,要求流程变量result必须为浮点型。

put()

给对象添加属性。

使用场景示例:例如有一个对象型的流程变量FLOW.person值为{"name":"Jack"},那么可以在缓存变量处,通过FLOW.person.put("age","18")为FLOW.person添加age属性。同时,将结果{"name":"Jack","age":"18"}缓存到任何对象型的变量。若有一个整型的流程变量FLOW.age值为18,也可通过FLOW.person.put("age",FLOW.age)的方式,添加结果为{"name":"Jack","age":18}。

说明:

FLOW.person.put(key,value),key和value都可以为变量名。若value为常量,则不管是否加了双引号,都会默认将属性值设置为字符型,若value为变量,则以变量的类型为准。

add()

给列表添加元素。

使用场景示例:例如有一个列表型的流程变量FLOW.arrayList值为[1],那么可以在缓存变量处,通过FLOW.arrayList.add(2)为FLOW.arrayList的末尾添加一个值为"2"的元素。同时,将结果[1,"2"]缓存到任何列表型的变量。若有一个整型流程变量FLOW.num值为"18",也可通过FLOW.arrayList.add(FLOW.num)的方式,添加结果为[1,18]。

说明:

FLOW.arrayList.add(value),value可以为变量名。若value为常量,则不管是否加了双引号,都会默认将值设置为字符型,若value为变量,则以变量的类型为准。

表2 字符串操作方法

函数名

描述

strSplit()

根据给定的分割符拆分字符串。

函数返回对象为数组类型,保存拆分后的字符串数组。包含两个参数:第一个为待拆分的字符串,第二个为分割符。

使用场景示例:

例如有一个字符型的流程变量FLOW.str值为"aa,cc,dd,ee",那么可以在方法调用处,通过调用strSplit方法,根据给定的分割符“,”拆分字符串。同时,将分割结果缓存到任何列表型的变量(FLOW.array)。该方法调用的参数支持变量赋值和手动赋值。方法参数填入时不需要加引号(下同)。

strSubstring()

提取子字符串。

函数返回对象为字符串类型,为截取的子字符串。包含三个参数:第一个为待截取的字符串,第二个为开始下标(整型),第三个为结束下标(整型)。(下标从0开始,不包含结束下标字符)。

使用场景示例:

例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strSubstring方法,根据给定的下标截取子字符串。同时,将截取结果缓存到任何字符型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

strIndex0f()

获取第一次出现指定字符串的下标。

函数返回对象为下标值,整型。包含两个参数:第一个为待搜索的字符串,第二个为指定的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strIndex0f方法,获取第一次出现指定字符串的下标。同时,将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

strStartsWith()

检测字符串是否以指定的前缀开始。

函数返回对象为检测结果,整型 0/1。包含两个参数:第一个为待检测的字符串,第二个为指定的前缀字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strStartsWith方法,检测字符串是否以指定的前缀开始。同时,将检测结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

strEndsWith()

检测字符串是否以指定的后缀结束。

函数返回对象为检测结果,整型 0/1。包含两个参数:第一个为待检测的字符串,第二个为指定的后缀字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strEndsWith方法,检测字符串是否以指定的后缀结束。同时,将检测结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

strParseJSON()

将json字符串转换为对象。

函数返回对象为转换之后的json对象,包含一个参数:待转换的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.strJson1值为Json格式的字符串 {"a":"1","b":"2"},那么可以在方法调用处,通过调用strParseJSON方法,将字符串转成对象返回。同时,将结果缓存到任何对象类型的变量(FLOW.obj1)。该方法调用的参数支持变量赋值和手动赋值。

strParseInt()

将字符串转换为整型数字。

函数返回对象为转换之后的整型数字,包含一个参数:待转换的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str1值为 "11",那么可以在方法调用处,通过调用strParseInt方法,将字符串转成整形数字返回。同时,将结果缓存到任何整型的变量(FLOW.int1)。该方法调用的参数支持变量赋值和手动赋值。

strParseFloat()

将字符串转换为浮点型数字。

函数返回对象为转换之后的浮点型数字,包含一个参数:待转换的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str1值为 "0.56",那么可以在方法调用处,通过调用strParseFloat方法,将字符串转成浮点型返回。同时,将结果缓存到任何浮点型的变量(FLOW.float1)。该方法调用的参数支持变量赋值和手动赋值。

strLength()

获取字符串长度。

函数返回对象为字符串的长度,整型。包含一个参数:待计算长度的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str1值为"qwer",那么可以在方法调用处,通过调用strLength方法,检测字符串的长度。同时,将结果缓存到任何整型的变量(FLOW.int1)。该方法调用的参数支持变量赋值和手动赋值。

strToUpperCase()

将字符串小写字符转换为大写。

函数返回对象为转换之后的字符串,包含一个参数:待转换的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str1值为"qwer",那么可以在方法调用处,通过调用strToUpperCase方法,将字符串的所有字符转换为大写。同时,将结果缓存到任何整型的变量(FLOW.str1)。该方法调用的参数支持变量赋值和手动赋值。

strToLowerCase()

将字符串大写字符转换为小写。

函数返回对象为转换之后的字符串,包含一个参数:待转换的字符串。

使用场景示例:

例如有一个字符型的流程变量FLOW.str1值为"QWER",那么可以在方法调用处,通过调用strToLowerCase方法,将字符串的所以字符转换为小写。同时,将结果缓存到任何整型的变量(FLOW.str1)。该方法调用的参数支持变量赋值和手动赋值。

表3 数组操作方法

函数名

描述

arrayAdd()

向数组中添加一个元素。

函数返回对象为添加的结果,如果添加成功返回1,否则返回0。包含三个参数:第一个为待添加的数组,第二个为添加的位置(默认尾部),第三个为添加的元素;该函数将修改待添加的数组。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[1,2,3,4],那么可以在方法调用处,通过调用arrayAdd方法,为FLOW.array添加元素,第二个参数可以指定添加的位置(索引)。同时,将添加结果缓存到任何整型的变量(FLOW.result),添加成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[1,2,3,4,5],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

arrayAddAll()

向数组中添加另一个集合的所有元素。

函数返回对象为添加的结果,如果添加成功返回1,否则返回0。包含三个参数:第一个为待添加的数组,第二个为添加的位置(默认尾部),第三个为添加的元素;该函数将修改待添加的数组。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[1,2,3,4]和FLOW.array2值为[5,6,7,8],那么可以在方法调用处,通过调用arrayAddAll方法,为FLOW.array添加另一个集合中的元素,第二个参数可以指定添加的位置(索引)。同时,将添加结果缓存到任何整型的变量(FLOW.result),添加成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[1,2,3,4,5,6,7,8],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

arrayContains()

判断元素是否在数组中。

函数返回对象为判断的结果,如果包含结果返回1,否则返回0。包含两个参数:第一个为待检测的数组,第二个为待判断的元素。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayContains方法,判断所给定的元素是否包含在FLOW.array变量中。同时,将返回结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

arrayGet()

通过索引值获取数组中的元素。

函数返回对象为数组的元素,包含两个参数:第一个为待使用的数组,第二个为数组下标。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayGet方法,从FLOW.array变量获取给定下标的值。同时,将返回结果缓存到给定的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

arrayRemoveIdx()

删除数组中的指定下标元素。

函数返回对象为删除的结果,如果删除成功返回1,否则返回0。包含两个参数:第一个为待使用的数组,第二个为删除数组下标。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayRemoveIdx方法,删除FLOW.array变量指定下标的元素。同时,将删除结果缓存到任何整型的变量(FLOW.result),删除成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[a,b,d],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

arrayRemoveAllIdx()

删除数组中指定下标集合对应的元素。

函数返回对象为删除的结果,如果删除成功返回1,否则返回0。包含两个参数:第一个为待使用的数组,第二个为指定集合。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f]和FLOW.indexArray值为[2,3,4],那么可以在方法调用处,通过调用arrayRemoveAllIdx方法,为FLOW.array删除存在另一个集合中的索引对应的值,第二个参数可以指定删除的索引集合。同时,将删除结果缓存到任何整型的变量(FLOW.result),删除成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[a,b,f],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

说明:

FLOW.indexArray为第一个列表型变量FLOW.array的索引集合,只支持非负整数,且集合中的值不得超过FLOW.array的最大索引值。

arrayClear()

删除数组中的所有元素。

函数返回对象为void,输入框灰化不可编辑。包含一个参数:待清理的数组。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayClear方法,为FLOW.array删除数组中的所有元素。同时,调用方法后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值。

arraySize()

获取数组的长度。

函数返回对象为数组长度,整型。包含一个参数:为待计算长度的数组。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f],那么可以在方法调用处,通过调用arraySize方法,获取FLOW.array数组的长度。同时,将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

arraySubList()

截取并返回数组中的一部分。

函数返回对象为子数组,包含三个参数:第一个为待截取的数组,第二个为截取起始位置,第三个为截取结束位置。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f],那么可以在方法调用处,通过调用arraySubList方法,截取FLOW.array数组中的一部分。同时,将截取结果缓存到任何列表型的变量(FLOW.subArray),截取到的值FLOW.subArray为[c,d,e],截取的区间为左闭右合区间。该方法调用的参数支持变量赋值和手动赋值。

arrayJoin()

将数组转成字符串。

函数返回对象为转换后的字符串。包含两个参数:第一个为待转换的数组,第二个为连接字符串。

使用场景示例:

例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayJoin方法,将数组中的元素通过给定的符号转成字符串。同时,将转换结果缓存到任何字符型的变量(FLOW.result),下方示例处返回结果值为a=b=c=d。该方法调用的参数支持变量赋值和手动赋值。

表4 增加对Map的操作方法

函数名

描述

mapPut()

向map中添加一个元素。

函数返回对象逻辑为如果key不存在,则返回null,如果存在则返回原先被替换的value值,对象类型。函数包含三个参数:第一个为待添加的map,第二个为key(仅支持字符串类型),第三个为添加的元素。

使用场景示例:

例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapPut方法,为FLOW.person添加元素值。同时,将添加结果缓存到变量(FLOW.result),添加成功后将修改FLOW.person变量的值并存入缓存中,此时FLOW.person的值为{"name":"Jack","sex":"boy","age":"25"},直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

说明:

对于手动赋值的一个对象型的变量,输入框参数值处不能使用双引号,通过参数支持的流程变量则不同,可参照上方用例

如果要向对象型变量中添加一个列表数据,则第三个参数只能使用预先定义好的变量,不可使用输入框直接输入数组,输入框输入默认为字符串类型。

mapGet()

获取map中指定键映射的值。

函数返回对象为指定键映射的值。函数包含两个参数:第一个为待处理的map,第二个为key(仅支持字符串类型)。

使用场景示例:

例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapGet方法,获取map中指定键映射的值。同时,将获取结果缓存到变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

mapRemove()

删除map中指定键值对。

函数返回对象为此映射先前与该键关联的值;如果该映射不包含该键的映射,则返回null。包含两个参数:第一个为待处理的map,第二个为key(仅支持字符串类型)。

使用场景示例:

例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapRemove方法,删除map中指定键值对。同时,将删除结果缓存到变量(FLOW.result),删除后将修改FLOW.person变量的值并存入缓存中,直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。

mapClear()

清空map的所有键值对。

函数返回对象为void,输入框灰化不可编辑。包含一个参数:待清理的map。

使用场景示例:

例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapClear方法,清空map的所有键值对。同时,调用方法后将修改FLOW.person变量的值并存入缓存中,直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值。

mapSize()

获取map的所有key的数量。

函数返回对象为map中key的数量,整型。包含一个参数:为待计算数量的map。

使用场景示例:

例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapSize方法,获取map的所有key的数量。同时,调用方法后将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值。

表5 增加对日期处理的操作方法

函数名

描述

offsetMonth()

按月偏移。

返回对象为字符串类型,保存偏移后的数据。

方法包含两个参数:第一个为待偏移的时间变量,字符串类型,格式为yyyyMM,如:202308,第二个为偏移数,整型,可以为负值,例如-6代表将源字符串向前推移6个月。

使用场景示例:

例如有一个字符串的流程变量FLOW.date值为"202308",那么可以在方法调用处,通过调用offsetMonth方法,获取偏移后的日期。同时,调用方法后将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值。

offsetHour()

按小时偏移。

返回对象为字符串类型,保存偏移后的数据。

方法包含两个参数:第一个为待偏移的时间变量,字符串类型,格式为yyyyMMddHHmmss,如:20230808122020,第二个为偏移数,整型,可以为负值,例如-6代表将源字符串向前推移6个小时。

使用场景示例:

例如有一个对象型的流程变量FLOW.date值为"20230831165801",那么可以在方法调用处,通过调用offsetHour方法,获取偏移后的小时。同时,将获取结果缓存到变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。

相关文档