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