应用参数开发案例
标签:
应用参数、系统参数
需求背景:
应用参数的使用场景,如标准产品总账模块:不同的客户对于凭证的参数配置有不同需求,在应用参数处可通过开关做现金流量控制、金额为零校验控制等。
问:那么当客户有个性化参数配置需求时,如何满足?
苍穹支持自定义发布应用参数,然后各业务模块需获取该参数做业务处理,进而达到效果。具体实现方案如下:
实现方案:
操作步骤:
1、 新建参数,选择继承相应参数模板,例如 应用参数模板bos_appparametertpl
2、 添加需要配置的参数的控件,如截图
3、 然后保存发布到对应应用下
4、 在系统菜单【系统云】-【配置工具】-【参数配置】-【系统参数】中进行参数配置;
5.创建一张单据,添加ip、端口、用户名、密码四个字段。注册插件kd.bos.debug.mservice.Test
获取效果:
附件:
public void afterCreateNewData(EventObject e) {
super.afterBindData(e);
//获取应用参数
//获取当前登录业务单元id
long orgId = RequestContext.get().getOrgId();
//从缓存中获取应用信息
AppInfo ptstDemo = AppMetadataCache.getAppInfo("kded_001");
//获取应用的主键
String appId = ptstDemo.getId();
AppParam apm = new AppParam();
apm.setAppId(appId);
apm.setOrgId(Long.valueOf("100000")); // 参数的组织
//获取整体应用参数
Map<String,Object> paramWhole = SystemParamServiceHelper.loadAppParameterFromCache(apm);
//从整个应用参数中获取某个参数属性值
Object ip = paramWhole.get("kded_ip");
Object port = paramWhole.get("kded_port");
Object username = paramWhole.get("kded_username");
Object password = paramWhole.get("kded_password");
this.getModel().setValue("kded_ip", ip.toString());
this.getModel().setValue("kded_port", port.toString());
this.getModel().setValue("kded_username", username.toString());
this.getModel().setValue("kded_password", password.toString());
}
应用参数开发案例.docx(893.58KB)
推荐阅读