BOS新功能开发——编码规则
首先,进行一下概念的定义。
编码:对于业务管理中的基础资料和业务单据,我们都会用一个唯一的、有意义的标识符来表示,而这个标识符就是编码。
编码规则:对于同一类型的基础资料和业务单据,我们必须采用统一的编码生成策略来管理编码,而这个生成策略就是编码规则。
在第一次新增编码规则之前,我们必须先生成子系统树,否则我们找不到我们要生成编码规则的目录。生成子系统树之后,我们开始新建编码规则模板。
1.企业建模->业务规则->编码规则->模板设置
2.然后进到我们要新增编码规则模板的目录,点击新增按钮。
以上标红的为必填项,有几个概率需要解释一下。
新增显示:点击新增时,编码即生成好了,但是该编码不一定会入库。
不允许断号:点击保存才会将编码入库,而且不断号。
3.编码规则模板设置好之后,我们需要将刚刚定义好的模板启用,使编码规则生效。
进入企业建模->业务规则->编码规则->规则定义,进到自己的目录,新建编码规则(也可以导入刚刚的模板),点击启用即可完成编码规则的配置。
4.编码规则配置完之后,点击实体,还需要设置几个扩展属性。
5.在编辑页面的onload方法中加上下面这个方法,将编码规则生成的编码显示到编辑页面中。至此,编码规则的功能实现了。
protected void setAutoNumberByOrg() { if (this.editData == null) { return; } if (this.editData.getNumber() == null) { SysContext sysContext = SysContext.getSysContext(); if (sysContext.getCurrentOrgUnit() != null) { String companyID = sysContext.getCurrentOrgUnit().getString("id"); try { ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory .getRemoteInstance(); if (iCodingRuleManager.isExist(this.editData, companyID)) { this.editData.setNumber(iCodingRuleManager.getNumber(this.editData, companyID)); this.txtNumber.setText(this.editData.getNumber()); } } catch (Exception e) { handUIException(e); this.oldData = this.editData; e.printStackTrace(); } } } }