
# 脚本及作业中引用参数使用介绍
该章节介绍如何在脚本及作业中引用参数，以及引用后的生效范围、是否支持EL表达式和简易变量集等，让您更加清晰地了解工作空间级和脚本、作业级配置参数的使用方法。
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
工作空间环境变量参数、作业参数、脚本参数均可以配置参数，但作用范围不同；另外如果工作空间环境变量参数、作业参数、脚本参数同名冲突，调用的优先级顺序为：**作业参数 \> 工作空间环境变量参数 \> 脚本参数**。
表1参数的使用方法 
| 类别        | 场景                                    | 生效范围   | 调用方法                                                                                                                                                               |
|:---|:---|:---|:---|
| 环境变量/环境常量 | 配置作业参数时，当某参数隶属于多个作业时，可将此参数提取出来作为环境变量。 | 当前工作空间 | ${*环境变量*} ${*环境常量*} 配置方法请参考：[环境变量]   |
| 作业变量/作业常量 | 作业参数为作业级的参数，可用于作业中的任意节点。              | 当前作业   | ${*作业变量*} ${*作业常量*} 配置方法请参考：[配置作业参数] |
| 脚本参数      | 配置自定义字段的参数名称和参数值。                     | 当前脚本   | ${*脚本参数*} 配置方法请参考：[脚本参数]                                                      |
   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
SQL脚本的变量格式有${}和${dlf.}两种，支持用户根据实际情况进行配置。配置的变量格式会作用于SQL脚本、作业中SQL语句、单节点作业，环境变量。配置脚本变量格式的操作请参见[脚本变量定义](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_04501.html#dataartsstudio_01_04501__section310213518565)。
系统默认脚本变量格式为${}。
 #### 环境变量
环境变量中支持定义变量和常量，环境变量的作用范围为当前工作空间。
- 变量是指不同的空间下取值不同，需要重新配置值，比如"工作空间名称"变量，这个值在不同的空间下配置不一样，导出导入后需要重新进行配置。
- 常量是指在不同的空间下都是一样的，导入的时候，不需要重新配置值。
图1环境变量   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001490154844.png "点击放大")
具体应用如下：
在环境变量中已新增一个变量，"参数名"为sdqw，"参数值"为wqewqewqe。
1. 打开一个已创建好的作业，从左侧节点库中拖拽一个"Create OBS"节点。
2. 在节点属性页签中配置属性。 
   图2Create OBS   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001551755181.png)
   
   
   
3. 单击"保存"后，选择"前往监控"页面监控作业的运行情况。
 
 #### 配置作业参数
作业参数中支持定义变量和常量，作业参数的作用范围为当前作业。
- 变量是指不同的作业下取值不同，需要重新配置值。
- 常量是指在不同的作业下都是一样的，不需要重新配置值。
  图3作业参数   
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001490661438.png "点击放大")
  
  作业参数定义好之后，可以在作业节点里面引用该参数。
  图4引用作业参数   
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001490662954.png "点击放大")
  
  
 
 #### 脚本参数
- 脚本参数支持如下使用方式，脚本参数的作用范围为当前脚本。
  - SQL脚本支持在脚本编辑器中直接输入参数（Flink SQL不支持），通过作业调度时可通过节点属性进行赋值，如[2]所示。
  
  - Shell脚本可以在编辑器上方配置参数和交互式参数以实现参数传递功能。
  
  - Python脚本支持参数传递功能。
  
  - SQL脚本支持在脚本编辑器中直接输入参数（Flink SQL不支持），脚本独立执行时可通过编辑器下方配置，如[图5]所示。
    图5独立执行时的脚本参数   
    ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001616295673.png "点击放大")
    
    
   
1. 开发一个脚本。开发脚本时，脚本表达式里面必须包含变量（例如，SQL中变量是DATE，脚本中就写${DATE}）。在作业参数配置里面，您可以在[2]中编写脚本参数DATE的语句表达式。
   在"脚本开发"界面，在编辑器中输入开发语句，如下图所示。
   ```
   INSERT INTO B FROM (SELECT * FROM A WHERE DATE = ${DATE})
   ```
   图6开发脚本   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001490191506.png "点击放大")
   
   脚本dws_030903编写完成后，保存并提交此脚本的最新版本。
   
2. 开发一个批处理作业。开发作业时，您需要配置节点属性参数。
   在数据开发主界面的左侧导航栏，选择"数据开发 \> 作业开发"。
   图7作业调度时的脚本参数   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001490511286.png "点击放大")
   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   - 如果作业所关联的SQL脚本使用了参数，此处显示脚本参数名称（例如DATA），请在参数名称后的输入框配置参数值。参数值支持使用[EL表达式](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0494.html)。
   
   - 若关联的SQL脚本，脚本参数发生变化，可单击刷新按钮![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001541031225.png)同步，也可以单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001540791377.png)进行编辑。
   
   - 涉及脚本的节点均可以采用此方式引用脚本变量，如SQL脚本、Shell脚本和Python脚本。
     
 
#### 简易变量集
简易变量集提供了一系列自定义的变量，自定义参数会根据任务调度的业务日期、计划时间及参数的取值格式自动替换为具体的值，实现在任务调度时间内参数的动态替换。简易变量集的详细内容请参见[简易变量集参考](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0556.html)。
