数据治理中心 DATAARTS STUDIO-常用EL表达式样例合集
常用EL表达式样例合集
本章节介绍常用的EL表达式及示例。
方法 |
描述 |
示例 |
---|---|---|
String getNodeStatus(String nodeName) |
获取指定节点运行状态,成功状态返回success,失败状态返回fail。 例如,判断节点是否运行成功,可以使用如下判断条件,其中test为节点名称: #{(Job.getNodeStatus("test")) == "success" } |
获取test节点运行状态。 #{Job.getNodeStatus("test")} |
String getNodeOutput(String nodeName) |
获取指定节点的输出。此方法只能获取前面依赖节点的输出。 |
|
String getParam(String key) |
获取作业参数。 注意此方法只能直接获取当前作业里配置的参数值,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 这种情况下建议使用表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 |
获取参数test的值: #{Job.getParam("test")} |
String getPlanTime(String pattern) |
获取指定pattern的计划时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 |
获取作业调度计划时间,具体到毫秒: #{Job.getPlanTime("yyyy-MM-dd HH:mm:ss:SSS")} |
String getYesterday(String pattern) |
获取执行pattern的计划时间前一天的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 |
获取作业调度计划时间的前一天的时间,具体到日期: #{Job.getYesterday("yyyy-MM-dd HH:mm:ss:SSS")} |
String getLastHour(String pattern) |
获取执行pattern的计划时间前一小时的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 |
获取作业调度计划时间前一小时的时间,具体到小时: #{Job.getLastHour("yyyy-MM-dd HH:mm:ss:SSS")} |
Date addDays(Date date, int amount) |
给date添加指定天数后,返回新Date对象,amount可以是负数。 |
将作业调度计划减一天的时间,转换为年月日格式。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyy-MM-dd")} |
int getDay(Date date) |
从date获取天,例如:date为2018-09-14,则返回14。 |
从作业调度计划获取具体的天。 #{DateUtil.getDay(Job.planTime)} |
Date now() |
返回当前时间。 |
以秒格式返回当前的时间。 #{DateUtil.format(DateUtil.now(),"yyyy-MM-dd HH:mm:ss")} |
Object path(String jsonStr,String jsonPath) |
返回json字符串指定路径下的字段值。类似于XPath,path方法可以通过路径检索或设置JSON,其路径中可以使用.或[]等访问成员、数值,例如:tables[0].table_name。 |
字符串变量str的内容如下:
{ "cities": [{ "name": "city1", "areaCode": "1000" }, { "name": "city2", "areaCode": "2000" }, { "name": "city3", "areaCode": "3000" }] }
获取city1的电话区号,EL表达式如下:
#{JSONUtil.path(str,"cities[0].areaCode")} |
current |
For Each节点在处理数据集的时候,是一行一行进行处理的。Loop.current表示当前遍历到的For Each节点“数据集”中定义的二维数组的某一行,该数据行为一维数组。 一般定义格式为#{Loop.current[0]}、#{Loop.current[1]}或其他。其中[0]表示遍历到的当前行的第一个值,[1]表示遍历到的当前行的第二个值,以此类推。 |
作为For Each节点的“子作业参数”取值,表示For Each循环遍历中,取“数据集”中二维数组的当前遍历行的第二个值。 #{Loop.current[1]} |