服務編排、邏輯流、工作流中的表達式語法規(guī)則說明
BWEL指BizWorks Expression Language,可以在服務編排、頁面編排及工作流中使用,用于變量賦值、分支條件設定、組件屬性的動態(tài)配置等場景。
分類 | 操作符 | 返回值類型 | 用法示例 | 用法說明 |
文本 | & | String | str_a & str_b | 用于拼接字符串,并返回拼接結果。例如表達式"BizWorks"&" "&"LightApp"的返回值為"BizWorks LightApp"。 |
== | Boolean | str_a == str_b | 用于比較字符串,并返回比較結果。 返回值:
| |
!= | Boolean | str_a != str_b | 用于比較字符串,并返回比較結果。 返回值:
| |
數(shù)字 | + | Number | num_1+num_2 | 對兩個數(shù)字進行相加。 |
- | Number | num_1-num_2 | 對兩個數(shù)字進行相減。 | |
* | Number | num_1*num_2 | 對兩個數(shù)字進行相乘。 | |
/ | Number | num_1/num_2 | 對兩個數(shù)字進行相除,分母為0時返回null。 | |
% | Number | num_1%num_2 | num_1除以num_2后取的余數(shù)。 | |
^ | Number | num_1^num_2 | num_2個num_1彼此相乘。 | |
== | Boolean | num_1==num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
!= | Boolean | num_1!=num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
< | Boolean | num_1<num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
> | Boolean | num_1>num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
<= | Boolean | num_1<=num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
>= | Boolean | num_1>=num_2 | 對兩個數(shù)字進行比較,并返回比較結果。 返回值:
| |
時間 | == | Boolean | time_1==time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
|
!= | Boolean | time_1!=time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
| |
< | Boolean | time_1<time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
| |
> | Boolean | time_1>time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
| |
<= | Boolean | time_1<=time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
| |
>= | Boolean | time_1>=time_2 | 對兩個日期進行比較,并返回比較結果。 返回值:
|
表達式用法示例
通過表達式為Integer數(shù)據(jù)類型的變量num賦值,表達式示例如下:
1+2
通過表達式撰寫分支條件,無需使用IF函數(shù),可直接進行條件判斷,表達式返回類型為Boolean即可,表達式示例如下:
str_a=="分支一"
服務編排內BWEL函數(shù)說明
函數(shù)入參對大小寫不敏感 。
分類 | 函數(shù)名 | 服務編排 | 頁面編排 | 工作流 | 入參 | 返回值類型 | 用法示例 | 用法說明 |
集合 | DIFFERENCE_SET | 不支持 | 支持 | 不支持 | Set, Set | Set | SET(set1, set2) | 獲取兩個集合對象的差集。 |
INSERT_TO_ARRAY | 不支持 | 支持 | 不支持 | List, 動態(tài)類型, Integer | List | INSERT_TO_ARRAY(array, item, index) | 在目標數(shù)組的指定位置插入元素。 | |
INTERSECTION_SET | 不支持 | 支持 | 不支持 | Set, Set | Set | SET(set1, set2) | 獲取兩個集合對象的交集。 | |
KEY_SET | 不支持 | 支持 | 不支持 | Map | Set | KEY_SET(mapVariable) | 獲取Map類型變量的Key值的集合。 | |
REMOVE_FROM_ARRAY | 不支持 | 支持 | 不支持 | List, 動態(tài)類型 | List | REMOVE_FROM_ARRAY(array, item) | 在目標數(shù)組中刪除指定元素。 | |
REMOVE_FROM_ARRAY_AT | 不支持 | 支持 | 不支持 | List, Integer | List | REMOVE_FROM_ARRAY_AT(array, index) | 在目標數(shù)組中刪除指定位置的元素。 | |
SUBSET | 不支持 | 支持 | 不支持 | Set, Set | Boolean | SUBSET(set1, set2) | 判斷set2是否是set1的子集。 | |
UNION_SET | 不支持 | 支持 | 不支持 | Set, Set | Set | UNION_SET(set1, set2) | 獲取兩個集合對象的并集。 | |
KEYSET | 支持 | 不支持 | 支持 | Map | Set | KEYSET(mapVariable) | 獲取Map類型變量的Key值的集合。 | |
PUSH_TO_LIST | 不支持 | 支持 | 不支持 | List,動態(tài)類型 | List | PUT_TO_LIST(list, item) | 在集合變量list的末尾插入一個元素item。 | |
PUT_TO_MAP | 支持 | 支持 | 支持 | Map,動態(tài)類型,動態(tài)類型 | Map | PUTTOMAP(mapVariable, key, value) | 用于給Map類型變量添加key和value值。 | |
REMOVE_FROM_MAP | 支持 | 支持 | 支持 | Map,動態(tài)類型 | Map | REMOVEFROMMAP(mapVariable, key) | 用于從Map中刪除指定key的鍵值對。 | |
SIZE | 支持 | 支持 | 支持 | List/Set/Map | Integer | SIZE(list) | 返回集合對象內的元素個數(shù)。 | |
時間 | ADD_DAY | 支持 | 支持 | 支持 | Date,Integer | Date | ADDDAY(date,number) | 返回日期加、減天數(shù)后的日期值,number必須為整數(shù)(負整數(shù)視為減去天數(shù))。 |
ADD_HOUR | 支持 | 支持 | 支持 | Date,Integer | Date | ADDHOUR(datetime,number) | 返回日期時間加、減小時后的日期時間值,number必須為整數(shù)(負整數(shù)視為減去小時)。 | |
DATE | 支持 | 支持 | 支持 | Integer,Integer,Integer | Date | DATE(year,month,day) | 根據(jù)輸入的年月日的值,返回日期類型的數(shù)據(jù)。 其中年月日均為必填:
錯誤日期:如輸入1998,2,31返回null。 | |
DATETIME | 支持 | 不支持 | 支持 | Integer,Integer,Integer,Integer,Integer,Integer | Date | DATETIME(year,month,day,hour,minute,second) | 根據(jù)輸入的年月日的值,返回日期類型的數(shù)據(jù)。 其中年月日和時間均為必填:
錯誤日期:如輸入1998,2,31返回null。 | |
DAY | 支持 | 支持 | 支持 | Date | Integer | DAY(date) | 如果當天是2019-07-09,則返回為9。將日期轉化返回為整數(shù),在1~31之間。 | |
DAYS | 支持 | 支持 | 支持 | Date,Date | Integer | DAYS(end_date,start_date) | 返回兩個日期間的天數(shù)差值,日期和日期時間字段可以參與計算(時分秒不參與計算)。 | |
FORMAT_DATETIME | 支持 | 支持 | 支持 | Date,String | String | FORMAT_DATETIME(DATE,pattern) | 將日期格式轉化為指定格式文本格式;例如:FORMAT_DATETIME([日期],"yyyy-mm-dd HH:MM:SS")。 | |
HOUR | 支持 | 支持 | 支持 | Date | Integer | HOUR(datetime) | 如果當前時間為2019-07-09 14:34:45,則返回14。返回的是小時數(shù),在0~23之間。 | |
HOURS | 支持 | 支持 | 支持 | Date,Date | Integer | HOURS(end_time,start_time) | 返回兩個時間之間的小時差值。例如計算耗時。 | |
MINUTE | 支持 | 支持 | 支持 | Date | Integer | MINUTE(datetime) | 如果當前時間為2019-07-09 14:34:45,則返回34。返回的是分鐘數(shù),在0~59之間。 | |
MINUTES | 支持 | 支持 | 支持 | Date | Integer | MINUTES(end_time,start_time) | 返回兩個時間之間的分鐘差值。例如計算耗時。 | |
MONTH | 支持 | 支持 | 支持 | Date | Integer | MONTH(TODAY()) | 如果當天是2019-07-09,則返回為7。將日期轉化返回為整數(shù),在1~12之間。 | |
NOW | 支持 | 支持 | 支持 | 無 | Date | NOW() | 返回數(shù)據(jù)填寫時的日期+時間。 | |
QUARTER | 支持 | 支持 | 支持 | Date | Integer | QUARTER(date) | 返回填寫日期所屬的季度。返回是1~4之間的整數(shù)。 | |
SECOND | 支持 | 支持 | 支持 | Date | Integer | SECOND(datetime) | 如果當前時間為2019-07-09 14:34:45,則返回45。返回的是秒數(shù),在0~59之間。 | |
TODAY | 支持 | 支持 | 支持 | 無 | Date | TODAY() | 返回數(shù)據(jù)填寫時的日期。 | |
WEEKDAY | 支持 | 支持 | 支持 | Date | Integer | WEEKDAY(date) | 返回指定日期、日期時間字段或者數(shù)據(jù)的星期幾,返回值是1~7之間的整數(shù)。1代表周一,以此類推。 | |
WEEKNUM | 不支持 | 支持 | 不支持 | Date | Integer | WEEKNUM(date, return_type) | 返回特定日期在一年中的“第幾周”。Return_type默認1是周一開始,2是周二開始(以此類推)。返回的是個整數(shù)。 | |
YEAR | 支持 | 支持 | 支持 | Date | Integer | YEAR(TODAY()) | 如果當天是2019-07-09,則返回為2019。將日期轉化返回為整數(shù),在1970~9999之間。 | |
YEARS | 支持 | 支持 | 支持 | Date | Integer | YEARS(end_date,start_date) | 返回兩個日期之間的年數(shù)差值。例如計算年齡時可用,只對年份數(shù)據(jù)進行計算,默認四舍五入后輸入整數(shù)(時分秒不參與計算)。 | |
TIMESTAMP | 支持 | 不支持 | 不支持 | 無 | Long | TIMESTAMP() | 返回當前時間的時間戳。 | |
文本 | CONCATENATE | 支持 | 支持 | 支持 | String,String | String | CONCATENATE(text1, text2) | 拼接多個字符串。 |
CONTAINS | 支持 | 支持 | 支持 | String,String | Boolean | CONTAINS(text1,text2) | 判斷字符串(text1)是否包含字符串(text2)的值。 返回值:
| |
ENDS_WITH | 支持 | 支持 | 支持 | String,String | Boolean | ENDSWITH(text,startString) | 判斷字符串(text)是否以特定字符串(startString)結尾。 返回值:
| |
FIND | 支持 | 支持 | 支持 | String,String,Integer | Boolean | FIND(pattern, string, position) | 判斷給定字符串從某個位置開始是否符合某種范式。 | |
INDEX_OF | 支持 | 支持 | 支持 | String/List,String | Integer | INDEX_OF(string, search) | 在第一個文本字符串中查找第二個文本字符串,并返回第二個文本字符串的起始位置在第一個字符串中出現(xiàn)的起始位置。返回0則表示未查找到。 | |
JOIN | 支持 | 支持 | 支持 | Set,String | String | JOIN(v, sep) | 將一個集合對象以指定分隔符拼接為一個字符串。 | |
LEFT | 支持 | 支持 | 支持 | String,Integer | String | LEFT(text,[num_chars]) | 將一個字符串取最左的幾位數(shù),num_chars可選,不填寫默認是1。例如LEFT("阿里巴巴",2),返回的是阿里。 | |
LENGTH | 支持 | 支持 | 支持 | String/List | Integer | LENGTH(string) | 字符串長度或列表中元素個數(shù)。 | |
LOWER | 支持 | 支持 | 支持 | String | String | LOWER_CASE(string) | 將一個文本字符串中的所有字母轉換為小寫字母。 | |
MID | 不支持 | 支持 | 不支持 | String,Integer,Integer | String | MID(string, startindex, endindex) | 返回從第一個字符串的begin開始長度為len的內容,begin必填,若len不填寫,表示最后位置。 | |
REPLACE | 支持 | 支持 | 支持 | String,String,String | String | REPLACE(string, search, replacement) | 將第一個字符串中出現(xiàn)的所有第二個字符串內容,替換為第三個字符串的內容。 | |
RIGHT | 支持 | 支持 | 支持 | String,Integer | String | RIGHT(text,[num_chars]) | 將一個字符串取最右的幾位數(shù),num_chars可選,不填寫默認是1。例如RIGHT("阿里巴巴",2),返回的是巴巴。 | |
SPLICE | 支持 | 支持 | 支持 | String,String,String | String | REPLACE(string, search, replacement) | 將第一個字符串中出現(xiàn)的所有第二個字符串內容,替換為第三個字符串的內容。 | |
SPLIT | 支持 | 支持 | 支持 | String | List<String> | split("abc")=["a","b","c"] | 拆分字符串為數(shù)組。 | |
STARTS_WITH | 支持 | 支持 | 支持 | String,String | Boolean | STARTSWITH(text,startString) | 判斷字符串(text)是否以特定字符串(startString)開始。 返回值:
| |
SUBSTRING | 支持 | 不支持 | 支持 | String,Integer,Integer | String | SUBSTRING(string, startindex, endindex) | 返回從第一個字符串的startindex到endindex位置的內容,startindex必填,若endindex不填寫,表示最后位置。 | |
TEXT | 支持 | 支持 | 支持 | Number | String | TEXT(number) | 將給定數(shù)據(jù)轉換為字符串。 | |
TO_DATETIME | 支持 | 支持 | 支持 | String | Date | TO_DATETIME("2020-10-09 08:09:58") | 根據(jù)輸入的年月日和時間值,返回一個日期時間類型數(shù)據(jù)。參數(shù)需為文本類型,輸出為日期時間類型。 | |
TO_NUMBER | 支持 | 支持 | 支持 | String | Number | TO_NUMBER(string) | 將文本轉換為數(shù)值,例如:
| |
TRIM | 支持 | 支持 | 支持 | String | String | TRIM(string) | 刪除字符串首尾的空格,但是會保留字符串內部作為詞與詞之間分隔的空格。 | |
UPPER | 支持 | 支持 | 支持 | String | String | UPPER_CASE(string) | 將一個文本字符串中的所有字母轉換為大寫字母。 | |
UUID | 支持 | 支持 | 支持 | 無 | String | UUID()將參數(shù) number向上舍入 | 隨機生成一個唯一標識符,標識符長度為XX位。 | |
邏輯 | AND | 支持 | 不支持 | 支持 | Boolean | Boolean | (express1) AND (express2) | 表達式與。 |
CASE | 支持 | 支持 | 支持 | 動態(tài)類型 | 動態(tài)類型 | CASE(expression, value1, result1, value2, result2, ..., else_result) | 將expression值與給定的一組值進行比較,如果等于其中的某個值,則返回相應的結果,如果表達式的值不等于其中的任何一個值,則返回設定的其他值(else_result)。
| |
IF | 支持 | 支持 | 支持 | Boolean,動態(tài)類型,動態(tài)類型 | 動態(tài)類型 | IF(boolean, trueValue, falseValue);IF(isFemale, 'right', 'left') | 3元表達式。 | |
IS_EMPTY | 支持 | 支持 | 支持 | Object | Boolean | S_EMPTY(object) | 判斷字符串、結構對象等是否為空。 | |
IS_NULL | 支持 | 支持 | 支持 | String, Object | Boolean | IS_EMPTY(object) | 判斷字符串、結構對象等是否為空。 | |
IS_NUMBER | 支持 | 支持 | 支持 | String | Boolean | IS_NUMBER(fieldName) | 判斷文本值是否為數(shù)字。 返回值:
| |
NULL_VALUE | 支持 | 支持 | 支持 | 動態(tài)類型 | 動態(tài)類型 | NULLVALUE(value, defaultValue);NULLVALUE(amount, 10)=10 | 如果value為null,返回defaultValue。 | |
OR | 支持 | 不支持? | 支持 | Boolean | Boolean | (express1) OR (express2) | 表達式或。 | |
數(shù)字 | ABS | 支持 | 支持 | 支持 | Number | Number | ABS(number) | 返回入參的絕對值,可使用整數(shù)、浮點等數(shù)值字段、常量或表達式參與計算。 |
AVERAGE | 支持 | 支持 | 支持 | Number | Number | AVERAGE(number1,number2,…) | 返回參數(shù)的平均值(算術平均值),可使用整數(shù)、浮點等字段以及數(shù)值。 | |
CEIL | 支持 | 支持 | 支持 | Number | Number | CEIL(number) | 將參數(shù)number向上舍入。 | |
FLOOR | 支持 | 支持 | 支持 | Number | Number | FLOOR(number) | 將參數(shù)number向下舍入。 | |
FORMAT_NUMBER | 支持 | 不支持? | 支持 | Number,Integer | String | FORMAT_NUMBER(num1,quantize) | 將數(shù)字格式轉化為指定格式文本,第二個參數(shù)是精度,表示小數(shù)點后的位數(shù);FORMAT_NUMBER([數(shù)字字段],quantize),默認進行四舍五入。比如 FORMAT_NUMBER(3.1415926,4)="3.1416"。 | |
FORMAT_NUM | 不支持 | 支持 | 不支持 | Number,String | String | FORMAT_NUM(num1,pattern) | 將數(shù)字格式轉化為指定格式文本,第二個參數(shù)為轉化模式,默認進行四舍五入。比如FORMAT_NUM(3.141526,"x.xxxx")="3.1416"。 | |
MAX | 支持 | 支持 | 支持 | Number | Number | MAX(number1,number2,…) | 返回一組數(shù)值中的最大值。 | |
MIN | 支持 | 支持 | 支持 | Number | Number | MIN(number1,number2,...) | 返回一組值中的最小值。 | |
POWER | 支持 | 支持 | 支持? | Number,Integer | Number | POWER(number, power) | number為數(shù)值型,power為基數(shù)乘冪運算的指數(shù)(power必填)。 | |
RANDOM | 支持 | 支持 | 支持 | 無 | Float | RANDOM() | 0~1的隨機浮點數(shù)。 | |
RANDOM_INT | 支持 | 支持 | 支持 | Integer | Integer | RANDOM_INT(max) | 0~max的隨機整數(shù)。 | |
ROUND | 支持 | 支持 | 支持 | Number,Integer | Number | ROUND(number, quantize) | 根據(jù)指定精度對number進行四舍五入,比如ROUND(3.1415926, 4) = 3.1416; ROUND(3.5, 0)=4。 | |
SUM | 支持 | 支持 | 支持 | Number | Number | SUM(number1,number2,...) | 返回入參的求和值,可使用整數(shù)、浮點等字段以及數(shù)值。 | |
流程 | WF_PROCESS_INSTANCE_ID | 不支持 | 不支持 | 支持 | 無 | String | WF_PROCESS_INSTANCE_ID() | 獲取運行時當前流程實例ID。 |
WF_BUSINESS_KEY | 不支持 | 不支持 | 支持 | 無 | String | WF_BUSINESS_KEY() | 獲取運行時當前流程實例業(yè)務Key。 | |
WF_START_USER_ID | 不支持 | 不支持 | 支持 | 無 | String | WF_START_USER_ID() | 獲取運行時當前流程實例發(fā)起人ID。 | |
WF_TASK_ID | 不支持 | 不支持 | 支持 | 無 | String | WF_TASK_ID() | 獲取運行時當前流程實例上下文任務實例ID。 | |
WF_TASK_ASSIGNEE | 不支持 | 不支持 | 支持 | 無 | String | WF_TASK_ASSIGNEE() | 獲取運行時當前流程實例上下文任務處理人ID。 | |
其他 | MD5_32 | 支持 | 不支持 | 不支持 | String | String | MD5_32("xxxx") | 返回由一組字符串共同生成的加密值,返回長度為32。 |
CLONE_DEEP | 不支持 | 支持 | 不支持 | 動態(tài)類型 | 動態(tài)類型 | CLONE_DEEP(obj) | 對一個變量進行深拷貝并返回相同數(shù)據(jù)類型的值。 | |
FORMAT_OBJECT | 不支持 | 支持 | 不支持 | 對象類型 | String | FORMAT_OBJECT(obj) | 將對象類型的變量轉為對應的JSON數(shù)據(jù)字符串。 |