BOS开发指南编码规则配置Word文档下载推荐.docx
- 文档编号:21736082
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:1,021.65KB
BOS开发指南编码规则配置Word文档下载推荐.docx
《BOS开发指南编码规则配置Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《BOS开发指南编码规则配置Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
标识编码业务对象的含义,可以由用户按自己的设计要求,定义固定值的具体内容:
通常为英文缩写或中文缩写,
例如:
借款单-20051115-001
LRB-20051115-001
✧属性值:
用户可以将当前业务对象的属性参与编码。
✧系统日期:
用户可以将当前的时间加入到编码中,而且我们可以提供各种不同的时间格式供用户选择。
✧系统属性:
用户可以将当前系统属性加入到编码中,例如创建时间,修改时间。
✧顺序号:
初始值:
顺序号起始的数值
步长:
业务对象递增编码的顺序号之差
例如:
对于客户编码,初始值为100,步长为10,对于第一个客户编码为Coding00000100,那么第二个客户编码为Coding00000110。
注意:
一般用于编码规则的尾段,目的是为了对应用规则的对象进行计数和相关排序。
✧校验码:
检查编码是否存在分隔符以及编码长度是否符合要求。
分9+1和EAN13两种验证码,主要是用来验证长度,而且检验码必须放在分录的最后一行。
3.常用功能
3.1.编码规则模板导出
功能描述:
对初始库中建立好的编码规则模板进行导出
✧目前不支持对编码规则进行导出。
3.2.编码规则应用范围优先策略
应用范围优先策略,可以定义在集团内或多组织中使用同一编码规则。
避免重复定义、易于对编码进行管理。
✧集团优先:
集团内任何一个组织设定的编码规则均可以被集团内所有组织应用。
✧多组织优先:
指定的组织(可以指派多个)均可以使用当前规则。
✧组织优先:
指定的组织均可以使用当前规则。
3.3.不允许断号、新增显示、新增显示且不允许断号
编码规则使用‘不允许断号’或‘新增显示且不允许断号’时。
可以在‘维护断号’功能中对已回收编码进行维护。
不允许断号:
许多单据的编码是不能有断号,同时也不让随便更改的,这是对编码的一个很强约束的需求,这个需求直接影响到编码规则的实现方式。
应用场景一:
新增显示:
即单据新增时即产生编码,这样的方式不能用在不允许断号的场景,因为新增一个单据时就取了号,用户很可能不会保存这么一个单据,那这个取到号就会丢失,就会产生断号。
应用场景二:
新增不显示:
即单据新增时不取编码,同时这个单据的编码允许断号。
这时候就要定义新增不显示的规则。
应用场景三:
不允许断号的应用场景就是要求断号约束的编码规则,要满足这种需求,必须在单据保存的时候才去取编码,这样才能保证的不丢失编码,另外,在单据删除时,发现当前启用的编码规则是不允许断号的时候,必须显式的调用编码规则的回收接口来回收当前的这个编码,以备下一次取编码的时候使用。
(1)业务集成”新增显示且不允许断号”需要设置实体扩展属性CRAddNoBreak为true。
(2)通过ICodingRuleManager接口中getRuleStatus方法取得RuleStatus,判断是否为”新增显示且不允许断号”ruleStatus.isAddNoBreak()。
(3)单据上通过readNumber取得临时编码显示。
详见第5章isUseIntermitNumberisUseIntermitNumberisAddView方法
3.4.断号维护
3.5.属性参与编码
如果客户要求根据某个属性来影响单据的编码,这个时候需要将这个属性添加到编码规则的定义中,并做一些相关的设置来实现各种控制,可以将属性包含的下级属性也参与编码。
3.6对生成编码的控制
分类排序:
单据可能要根据某个属性进行分类并独立的编码,即每个分类从初始值开始编号。
这是一个与单据属性相关的一个需求,所以在编码规则的接口中需要将单据的值对象传入。
可视性设置:
编码规则可以将属性或时间等信息定义到编码中(例如当前CU的编码作为单据的编码的一部分),作为编码的一段,当客户需要按某个分段进行排序,同时呢,又不需要在编码中显示这个分段,这个时候就应该将属性值的可视性设为不可视。
3.7多适用条件
编码规则的应用条件支持部分指定应用条件,部分不指定,同时还要支持应用条件组合。
要求对发票类型+发票状态进行组合来定义适用条件,就是普通发票的提交状态适用一个编码规则,普通发票的作废状态又要适用一个编码规则,还有增值税发票提交和增值税发票作废状态,都可以分别定义规则。
✧不指定属性:
“不指定属性”的编码规则应用于所有未指定属性的场景,例如只为提交状态的发票定义了规则,同时,启用了一个“不指定属性”的规则,那么发票处于作废、暂存等状态时,就会使用“不指定属性”的规则。
✧多适用条件:
来源业务实体自由属性且类型为字符类型或枚举类型的字段。
✧需要业务和编码规则共同集成。
修改文件W:
\eas\Server\server\lib\client\eas\bs_codingrule-client.jar
CodingRule.properties
文件结构为:
#BF0C040E元数据BOStype
#当设置为true时则使用多适用条件false或者为空时使用单适用条件
BF0C040E=true
业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象获取多适用条件编码。
通过ParmCodingRule.setBindingPropertyExtendInfo设置多适用条件。
可参考以下代码
BindingPropertyInfobindingPropertyInfo=newBindingPropertyInfo();
BindingPropertyExtendInfobindingPropertyExtendInfo=newBindingPropertyExtendInfo();
bindingPropertyInfo.setProName("
effectedStatus"
);
bindingPropertyInfo.setProValue("
EFFECTED"
Listlist=newArrayList();
list.add(bindingPropertyInfo);
bindingPropertyExtendInfo.setList(list);
pcr.setBindingPropertyExtendInfo(bindingPropertyExtendInfo);
this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org,pcr));
详见第5章checkMoreAdapt方法
3.8多应用字段
支持在编码之外的字段使用编码规则,例如名称字段、批号批次字段、出货号等等字段都可能需要采用一定的规则产生编码。
主要应用于预算表的名称,支持获取组织名称、会计期间还有固定值来产生名称的编码规则。
该预算表的编码和名称同时应用编码规则。
房地产的合同号也有相同需求。
✧默认支持应用字段为编码(number)
关于编码规则多应用字段集成
修改配置文件codingruleadape.prperties
放入实体的实现类全路径
BF0C040E=com.kingdee.eas.base.codingrule.util.Test
接口ICodingRuleAdapt
publicinterfaceICodingRuleAdapt{
/**
*获取多应用字段
*@return
*/
publicListgetAdaptItemList();
}
接口返回的list中必须为多应用item
publicclassAdaptItem{
privateStringnumber;
privateStringname_l1;
privateStringname_l2;
privateStringname_l3;
publicStringgetName_l1(){
returnname_l1;
}
publicvoidsetName_l1(Stringname_l1){
this.name_l1=name_l1;
publicStringgetName_l2(){
returnname_l2;
publicvoidsetName_l2(Stringname_l2){
this.name_l2=name_l2;
publicStringgetName_l3(){
returnname_l3;
publicvoidsetName_l3(Stringname_l3){
this.name_l3=name_l3;
publicStringgetNumber(){
returnnumber;
publicvoidsetNumber(Stringnumber){
this.number=number;
测试类写法
publicclassTestimplementsICodingRuleAdapt{
publicListgetAdaptItemList(){
AdaptItemitem=newAdaptItem();
item.setNumber("
name"
item.setName_l2("
简体名称"
item.setName_l3("
繁体名称"
Listlist=newArrayList();
list.add(item);
returnlist;
效果图
业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象,获取自定义字段编码。
ParmCodingRulepcr=newParmCodingRule();
pcr.setCustomProperty("
可参考第五章controlCustomProperty方法。
4.案例
新增一条凭证新增显示的编码规则,执行凭证的增删改操作
新增一条凭证不允许断号的编码规则,执行凭证的增删改操作
第一步:
实体定义时定义扩展属性:
codingRuleEnabled,将值设为true,然后再构建输出后就能在规则定义的子系统树中定义规则。
第二步:
如果实体的属性要参与编码,需要设置该属性的扩展属性:
isInCode,将值设为true即可。
第三步:
如果要定义某个属性作为编码规则的过滤属性,需要设置该属性的扩展属性isBindingProperty,将值设为true即可。
第四步:
客户端调用:
见框架的FrameWorkUtils的getCodeRuleClient方法:
服务端调用,见框架的DataBaseControllerBean的setNumberFromCodingRule方法
5.提供给用户的接口
StringaddNew(CodingRuleInfocodingRuleInfo)
增加一个新的编码规则对象,参数为待插入的编码规则对象
StringgetNumber(IObjectValuebizObject,Stringorg,ParmCodingRulecustomProperty)
获取编码
Booleanupdate(CodingRuleInfocodingRuleInfo)
更新一个编码规则对象,参数为待插入的编码规则对象
Booleandelete(CodingRuleInfocodingRuleInfo)
删除一个编码规则对象,参数为待插入的编码规则对象
BooleandeleteByNumber(Stringnumber)
删除指定number的编码规则
CodingRuleInfogetCodingRule(IObjectValuebizObject,Stringorg)
获取编码规则对象
CodingRuleInfogetCodingRuleByNumber(Stringnumber)
获取指定number的编码规则对象
CodingRuleInfogetCodingRuleByName(Stringname)
获取指定name的编码规则对象
String[]getBatchNumber(IObjectValuebizObject,CodingRuleInfocodingrule,intcount)
用满足指定条件的编码规则对象生成指定的数量的编码返回
String[]getBatchNumberFromInitialValue(IObjectValuebizObject,Stringorg,Stringbindingproperty,StringcustomString,intcount)
从初始值开始批量取一组编码-
StringgetSimulateNumber(CodingRuleInfocodingruleinfo)
获取满足指定条件的编码规则对象生成的模拟编码
StringsumLength(CodingRuleInfocodingruleinfo)
获取满足指定条件的编码规则对象的编码长度
StringreadNumber(IObjectValuebizObject,Stringorg,Stringbindingproperty,StringcustomString)
读取满足指定条件的编码规则对象的生成编码只读
booleanhasCuscomString(IObjectValuebizObject,Stringorg)
满足指定条件的编码规则对象中是否包含有自定义段
StringgetNonbreakNumber(IObjectValuebizObject,Stringorg)
获取非中断的编码即不允许断号存在的编码
booleanisUserSelect(CodingRuleInfocr)
是否用户选择
booleanisExist(CodingRuleInfocr)
是否存在指定条件的编码规则对象
RuleStatusgetRuleStatus(IObjectValuebizObject,Stringorg,Stringbindingproperty,ParmCodingRulecustomPro)
获取规则的各种状态
booleanisUseIntermitNumber(CodingRuleInfocr)
指定的编码规则是否启用断号支持功能
booleanisUseIntermitNumber(IObjectValuebizObject,Stringorg,Stringbindingproperty)
booleanisAddView(CodingRuleInfocr)
是否是新增显示
booleanrecycleNumber(IObjectValuebizObject,Stringorg,Stringnumber)
回收号码到指定条件的编码规则对象中
IntermilNOCollectiongetIntermitNumbers(IObjectValuebizObject,Stringorg)
获取满足指定条件的编码规则对象的断号集合
CollectiongetPropertyCollection(StringbosType,StringpropertyName)
获取某业务实体的指定属性的值集合
String[]getSortItems(IObjectValuebizObject,Stringorg)
获取指定编码规则的分类排序集合只包括属性值类型
String[]getProperties(IObjectValuebizObject,Stringorg)
获取规则中为属性值类型的编码分录的集合
booleanhasTemplate(CodingRuleInfocodingruleInfo)
是否定义了规则模板
booleanhasMaxValue(CodingRuleInfocodingruleInfo)
是否含有最大值
enabledCodingRule(Stringid)
启用其中指定的编码规则
disabledCodingRule(Stringid)
禁用指定的编码规则
booleanisModifiable(CodingRuleInfocr)
生成的编码是否可修改
StringgetCurrentAppOUID(IObjectValuebizObject)
根据当前业务对象的扩展属性获取当前业务对象的当前应用组织单元
booleancheckModifiedNumber(IObjectValuebizObject,Stringorg,Stringnumber)
检查编码是否可修改
booleanisDHExist(IObjectValuebizObject,Stringorg)
判断是否存在断号
controlCustomProperty(CodingRuleInfoinfo)
控制自定义字段编码规则
CodingRuleCollectioncheckMoreAdapt(CodingRuleInfoinfo)
多适用条件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BOS 开发 指南 编码 规则 配置