
# 设置系统参数
#### 使用说明
与环境、业务要求等紧密相关的参数取值经常变化，可以将这样的参数设置为系统参数。AstroZero低代码提供了统一的系统参数配置页面，便于集中维护与管理。当参数发生变化时，仅需要修改一次系统参数取值，引用该系统参数的地方都会更新成为修改后的值。
#### 场景描述
新增、查询系统参数并进行修改。系统参数创建后，可以在其他地方以"{!parameter_name}"方式引用。例如，在如下两个场景使用系统参数：
- 将系统公用邮箱设置为系统参数。
- 将系统定时数据清理的执行时间，设置为系统参数。例如，系统执行数据清理任务时，会自动查询是否配置了系统参数"bingo.expiretask.execute.time"（AstroZero已预置该系统参数），查询到后，会按照配置的时间来启动数据清理。
 
本节介绍的是在应用内配置系统参数，您还可以在管理中心创建系统参数，相关操作请参考[配置系统参数](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_0022.html)。两者的区别是在应用里配置系统参数，可在打包发布应用时，将系统参数一起发布出去，在管理中心设置系统参数无法随应用发布出去。
 #### 如何创建系统参数
1. 参考[如何进入经典开发环境](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0003.html#astrozero_05_0003__section47067717379)中操作，进入经典版开发环境。
2. 在"首页 \> 项目 \> 我的应用"中，单击对应的应用，进入应用开发页面。
3. 在页面左下角，选择"配置"，进入应用配置页面。
4. 在"系统参数"页签，配置"显示名称"，该名称将会显示在运营配置页签。
5. 单击"新建"，新建参数，也可以单击"导入"，选择系统中已创建的系统参数进行导入。
6. 配置相关参数，单击"新建"。 
   表1系统参数说明 
   | 参数     | 参数说明                                                                                                                        |
   |:---|:---|
   | 使用命名空间 | 系统参数名称中，是否加"命名空间__"前缀。 勾选该选项时，可确保跨租户全局唯一。                                               |
   | 名称     | 系统参数名称，名称需要能尽可能的表明参数的业务含义，避免与其它参数混淆，建议使用"*APP/BO名称* _*系统参数名称*"来命名。 例如：APPName_MaxValue。 |
   | 值类型    | 系统参数取值类型。                                                                                                                   |
   | 值      | 参数取值，根据所选的不同参数类型，来设置参数取值。 文本类型的值，可以设置是否加密。                      |
   | 描述     | 系统参数的简要说明。                                                                                                                  |
   | 是否默认   | 打包时，是否保留当前参数的取值进行打包。                                                                                                        |
   | 是否加密   | 值是否加密保存。 当"值类型"为"文本"时，该参数才会显示。                                                           |
   | 权限     | 配置哪些权限，可以读取该系统参数。                                                                                                           |
      
   
   
 
#### 如何使用系统参数
系统参数创建完成后，可在脚本、服务编排、流程编排BPM和数据接入中使用。
- 脚本：脚本代码引入系统参数的代码行中，引入"sys"系统库，并使用"sys.getParameter('*系统参数名* ')"引入系统参数。
  例如，脚本里编辑如下代码，执行脚本，不用输入入参，查看"日志"页签打印的日志。
  ```
  import * as sys from 'sys'; 
  let sysParam = sys.getParameter('命名空间__APPName_MaxValue'); 
  console.log("MaxValue:", sysParam);
  ```
  图1在脚本中使用   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960287313.png "点击放大") 
- 服务编排：在服务编排的"全局上下文"中，新增公式变量，表达式输入"SYSPARAMETER('*系统参数名* ')"，引入系统参数，注意数据类型保持一致。
  图2在服务编排中使用   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960127541.png "点击放大") 
- BPM：在BPM的"全局上下文"中，新增相同数据类型的变量，图元配置中设置该变量，值输入"SYSPARAMETER('*系统参数名* ')"，引入系统参数。
  图3在BPM中使用   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960127529.png "点击放大") 
- Rest服务连接器：在Rest服务类型连接器（自定义连接器）的"动作"页签，单击"新建"。在"新建REST Action"页面的URL内，使用"{!*系统参数名* }"方式引入系统参数。
  图4"Rest服务"连接器中引入系统参数   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960287345.png "点击放大") 
 
#### 如何在脚本、服务编排、BPM中加密数据？
用户使用AstroZero的脚本、服务编排、流程编排BPM等开发的内容是不会加密存储的。如果用户需要加密数据，请使用加密类型的系统参数。
1. 参考[如何创建系统参数]中操作，新建加密类型的系统参数。
   
   例如，新建加密参数appClientId，注意要勾选"是否加密"。
   图5进入新建系统参数页面   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960127517.png "点击放大")
   图6新建appClientId系统参数   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888828.png "点击放大")
   
   
2. 在脚本、服务编排和流程编排BPM中，使用上一步创建的系统参数。 
   - 脚本：脚本代码中引入系统参数的代码行中，引入系统库，并使用"sys.getParameter('*appClientId* ')"引入系统参数。
     ```
     import * as sys from 'sys'; 
     ......
             let clientId = sys.getParameter('appClientId');
     ```
     图7在脚本中引入参数   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960127525.png "点击放大") 
   
   - 服务编排：在服务编排"全局上下文"中新增公式变量，表达式输入"SYSPARAMETER('*appClientId* ')"，引入系统参数。
     图8在服务编排中引入参数   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888804.png "点击放大") 
   
   - BPM：在BPM的"全局上下文"中，新增文本类型的变量，图元配置中设置该变量，值输入"SYSPARAMETER('*appClientId* ')"，引入系统参数。
     图9在BPM中引入参数   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933048224.png "点击放大") 
   
   
   
   
 
