
# 表达式概述
数据开发模块作业中的节点参数可以使用表达式语言（Expression Language，简称EL），根据运行环境动态生成参数值。可以根据Pipeline输入参数、上游节点输出等决定是否执行此节点。数据开发模块EL表达式使用简单的算术和逻辑计算，引用内嵌对象，包括作业对象和一些工具类对象。
- 作业对象：提供了获取作业中上一个节点的输出消息、作业调度计划时间、作业执行时间等属性和方法。
- 工具类对象：提供了一系列字符串、时间、JSON操作方法，例如从一个字符串中截取一个子字符串、时间格式化等。
#### 语法
表达式的语法：
```
#{expr}
```
其中，"expr"指的是表达式。"#"和"{}"是数据开发模块EL中通用的操作符，这两个操作符允许您通过数据开发模块内嵌对象访问作业属性。
#### 举例
在Rest Client节点的参数"URL参数"中使用EL表达式"tableName=#{JSONUtil.path(Job.getNodeOutput("get_cluster"),"tables\[0\].table_name")}"，如[图1]所示。
表达式说明如下：
1. 获取作业中"get_cluster"节点的执行结果（"Job.getNodeOutput("get_cluster")"），执行结果是一个JSON字符串。
2. 通过JSON路径（"tables\[0\].table_name"），获取JSON字符串中字段的值。
图1表达式示例   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253085405.png "点击放大")
EL表达式在数据开发过程中被广泛应用，您可以参考[最佳实践](https://support.huaweicloud.com/bestpractice-dataartsstudio/dataartsstudio_05_0100.html)查看更多应用EL表达式的进阶实践。
#### 调试方法介绍
下面介绍几种EL表达式的调试方法，能够在调试过程中方便地看到替换结果。
后文以#{DateUtil.now()}表达式为例进行介绍。
1. 使用DIS Client节点。
   - 前提：您需要具备DIS通道。
   
   - 方法：选择DIS Client节点，将EL表达式直接写在要发送的数据中，单击"测试运行"，然后在节点上右键查看日志，日志中会把EL表达式的值打印出来。 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002447600513.png "点击放大")
     
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001116328692.png "点击放大")
     
    
2. 使用Kafka Client节点。
   - 前提：您需要具备MRS集群，且集群有Kafka组件。
   
   - 方法：选择Kafka Client节点，将EL表达式直接写在要发送的数据中，单击"测试运行"，然后在节点上右键查看日志，日志中会把EL表达式的值打印出来。 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001116329232.png "点击放大")
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001116329244.png "点击放大")
     
    
3. 使用Shell节点。
   - 前提：您需要具备弹性云服务器ECS。
   
   - 方法：创建一个主机连接，将EL表达式直接通过echo打印出来，单击"测试运行"之后查看日志，日志中会打印出EL表达式的值。 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001162849173.png "点击放大")
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001116329298.png "点击放大")
     
    
4. 使用Create OBS节点。 如果上述方法均不可用，则可以通过Create OBS去创建一个OBS目录，目录名称就是EL表达式的值，单击"测试运行"后，再去OBS界面查看创建出来的目录名称。
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001162849195.png "点击放大")
   
   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001162969165.png "点击放大")
   
   
 
