BOS开发指南编码规则配置.docx

上传人:b****5 文档编号:3336506 上传时间:2022-11-21 格式:DOCX 页数:21 大小:395.19KB
下载 相关 举报
BOS开发指南编码规则配置.docx_第1页
第1页 / 共21页
BOS开发指南编码规则配置.docx_第2页
第2页 / 共21页
BOS开发指南编码规则配置.docx_第3页
第3页 / 共21页
BOS开发指南编码规则配置.docx_第4页
第4页 / 共21页
BOS开发指南编码规则配置.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

BOS开发指南编码规则配置.docx

《BOS开发指南编码规则配置.docx》由会员分享,可在线阅读,更多相关《BOS开发指南编码规则配置.docx(21页珍藏版)》请在冰豆网上搜索。

BOS开发指南编码规则配置.docx

BOS开发指南编码规则配置

编码规则

1.简介1

1.1.目的1

1.2.适用对象1

2.编码规则1

2.1.概念定义1

2.2.规则定义2

3.常用功能4

3.1.编码规则模板导出4

3.2.编码规则应用范围优先策略4

3.3.不允许断号、新增显示、新增显示且不允许断号5

3.4.断号维护7

3.5.属性参与编码9

3.6对生成编码的控制10

3.7多适用条件10

3.8多应用字段13

4.案例17

1.1.目的

对编码规则常见使用问题进行归纳总结。

1.2.适用对象

本文档适用于:

测试人员:

熟悉编码规则模块,了解编码规则常用功能。

开发工程师:

了解业务组件对编码规则集成方案。

2.1.概念定义

编码:

对于业务管理中的基础资料和业务单据,我们都要用一个唯一的、有意义的标

识符来表示,这个标识符,就是编码。

编码规则:

对于同一类型的基础资料和业务单据,我们必须采用统一的编码生成策略

进行管理,这个编码生成策略,就是编码规则。

22规则定义

进入方法:

系统平台->编码规则->规则定义

编码规则系统流程图

 

主要属性类别:

固定值:

标识编码业务对象的含义,可以由用户按自己的设计要求,定义固定值的具体内容:

通常为英文缩写或中文缩写,

例如:

借款单-20051115-001

LRB-20051115-001

属性值:

用户可以将当前业务对象的属性参与编码。

系统日期:

用户可以将当前的时间加入到编码中,而且我们可以提供各种不同的时间格式供用户

选择。

系统属性:

用户可以将当前系统属性加入到编码中,例如创建时间,修改时间。

顺序号:

初始值:

顺序号起始的数值

步长:

业务对象递增编码的顺序号之差

例如:

对于客户编码,初始值为100,步长为10,对于第一个客户编码为

Coding00000100,那么第二个客户编码为CodingOOOOOIIO。

注意:

一般用于编码规则的尾段,目的是为了对应用规则的对象进行计数和相关排序。

校验码:

检查编码是否存在分隔符以及编码长度是否符合要求。

分9+1和EAN13两种验证码,

主要是用来验证长度,而且检验码必须放在分录的最后一行。

3.1.编码规则模板导出

功能描述:

对初始库中建立好的编码规则模板进行导出

目前不支持对编码规则进行导出。

3.2.编码规则应用范围优先策略

功能描述:

应用范围优先策略,可以定义在集团内或多组织中使用同一编码规则。

避免重复定义、易于对编码进行管理。

集团优先:

集团内任何一个组织设定的编码规则均可以被集团内所有组织应用。

多组织优先:

指定的组织(可以指派多个)均可以使用当前规则。

组织优先:

指定的组织均可以使用当前规则。

33不允许断号、新增显示、新增显示且不允许断号

功能描述:

编码规则使用‘不允许断号’或’新增显示且不允许断号’时。

可以在‘维护断号’功能中对已回收编码进行维护。

不允许断号:

许多单据的编码是不能有断号,同时也不让随便更改的,这是对编码的一个很强约束的需求,这个需求直接影响到编码规则的实现方式。

应用场景一:

新增显示:

即单据新增时即产生编码,这样的方式不能用在不允许断号的场景,因为新增一个单据时就取了号,用户很可能不会保存这么一个单据,那这个取到号就会丢失,就会产生断号。

应用场景二:

新增不显示:

即单据新增时不取编码,同时这个单据的编码允许断号。

这时候就要定义新

增不显示的规则。

应用场景三:

不允许断号:

不允许断号的应用场景就是要求断号约束的编码规则,要满足这种需求,必须在单据保存的时候才去取编码,这样才能保证的不丢失编码,另外,在单据删除时,发现当前启用的编码规则是不允许断号的时候,必须显式的调用编码规则的回收接口来回收

当前的这个编码,以备下一次取编码的时候使用。

⑴业务集成”新增显示且不允许断号”需要设置实体扩展属性CRAddNoBreak为

true。

Custom

钿谥釦JM中科国平科Et書睾宵懊用RR'WffiI"世

梶工甲elmoHIc

ft5]SI*e

TLn■•皿“EeTlHI』呦c«»1TmgMl|丰「p鼻■»-A曲w码&耳吧耳

⑵通过ICodingRuleManager接口中getRuleStatus方法取得RuleStatus,判断是否为"新增显示且不允许断号”ruleStatus.isAddNoBreak()。

(3)单据上通过readNumber取得临时编码显示。

详见第5章isUseIntermitNumberisUseIntermitNumberisAddView方法

3.4.断号维护

功能描述:

编码规则使用‘不允许断号’或’新增显示且不允许断号’时。

可以在‘维护断号’功能中对已回收编码进行维护。

3.5.属性参与编码

功能描述:

如果客户要求根据某个属性来影响单据的编码,这个时候需要将这个属性添加到编码规则的定义中,并做一些相关的设置来实现各种控制,可以将属性包含的下级属性也参与编码。

3.6对生成编码的控制

功能描述:

分类排序:

单据可能要根据某个属性进行分类并独立的编码,即每个分类从初始值开始编号。

这是

个与单据属性相关的一个需求,所以在编码规则的接口中需要将单据的值对象传入。

可视性设置:

编码规则可以将属性或时间等信息定义到编码中(例如当前cu的编码作为单据的编码的

一部分),作为编码的一段,当客户需要按某个分段进行排序,同时呢,又不需要在编码中显示这个分段,这个时候就应该将属性值的可视性设为不可视。

H曄曲U下比凰狙战:

|TII1

*也&

补位方向

1

L「

kl

3.7多适用条件

功能描述:

编码规则的应用条件支持部分指定应用条件,部分不指定,同时还要支持应用条

件组合。

要求对发票类型+发票状态进行组合来定义适用条件,就是普通发票的提交状态适

还有增值税发票提交和增值

用一个编码规则,普通发票的作废状态又要适用一个编码规则,税发票作废状态,都可以分别定义规则。

不指定属性:

“不指定属性”的编码规则应用于所有未指定属性的场景,例如只为提

交状态的发票定义了规则,同时,启用了一个“不指定属性”的规则,那么发票处于作废、暂存等状态时,就会使用“不指定属性”的规则。

多适用条件:

来源业务实体自由属性且类型为字符类型或枚举类型的字段。

需要业务和编码规则共同集成。

修改文件W:

\eas\Server\server\lib\client\eas\bs_codingrule-client.jar

!

i-.

:

幣佃闽

>-<

*3|■TipIts*

Jr15l

■汕W?

hie

15闻

335RJSEfLlit

BJTTZ15K>

znww

Q£inAanirE*~opac3^■<1mh

fi2T

HJ少空FlU

IS00

§'if-.Hi|H■■m

IKhh

血ff・M唱IS00

•叩基

R.

两T盘gj列

-■lAdAf3-iIT

JtE

fiE卫乍*pir还az:

2007-JC*-3310軽

ZS4£5Iie

创>4np.Hijclot's

1Z滋

JW-ii-2rtA

Q|ifaskkEAuifif

亀JBI

匚飲BHAkFkU

3KP-JIH2l&;«?

§住孔aclkte

I'Si

LfiOZLftSSrd*

2iUT-]c-i-asg

j]|EfirrCod]i*g>iLC14E1

IE

<50CLA53IlU

ZSEF-ZIT-WD

.fiit加"学节tin史口」

CodingRule.properties

文件结构为:

#BF0C040E元数据BOStype

#当设置为true时则使用多适用条件false或者为空时使用单适用条件

BF0C040E=true

业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象获取多适用条件编码。

通过ParmCodingRule.setBindingPropertyExtendlnfo设置多适用条件。

可参考以下代码

BindingPropertylnfobindingPropertylnfo=newBindingPropertyInfo();

new

BindingPropertyExtendlnfobindingPropertyExtendlnfo

BindingPropertyExtendlnfo();

bindingPropertyInfo.setProName("effectedStatus");

bindingPropertylnfo.setProValue("EFFECTED");

Listlist=newArrayList();

list.add(bindingPropertyInfo);

bindingPropertyExtendlnfo.setList(list);

pcr.setBindingPropertyExtendlnfo(bindingPropertyExtendlnfo);

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

*/publicListgetAdaptltemList();接口返回的list中必须为多应用itempublicclassAdaptItem{

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=newAdaptltem();

item.setNumber(”name");item.setName」2("简体名称");item.setName」3("繁体名称");

Listlist=newArrayList();list.add(item);

returnlist;

}

}

效果图

业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象,获取自定义字段编码。

可参考以下代码

ParmCodingRuleper=newParmCodingRule();

pcr.setCustomProperty(”name");

this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org

pcr));

可参考第五章controlCustomProperty方法。

新增一条凭证新增显示的编码规则,执行凭证的增删改操作

新增一条凭证不允许断号的编码规则,执行凭证的增删改操作

第一步:

实体定义时定义扩展属性:

codingRuleEnabled,将值设为true,然后再构建输

出后就能在规则定义的子系统树中定义规则。

 

第二步:

如果实体的属性要参与编码,需要设置该属性的扩展属性:

islnCode,将值设为true

即可。

第三步:

如果要定义某个属性作为编码规则的过滤属性,需要设置该属性的扩展属性isBindingProperty,将值设为true即可。

km1-HTfiPrrWrtbri*i|]FEE口细

审饰口HI壶口河巴理・程■&窖询冃0匚说即运厅'I出1F口監歹航;

,二331"

>-o-册■电.

.■”

•,.#*:

主hFraW^UJlHgK

£pCd4^HukOfl£idvc

人田tg如

話塾-s

ji

研3

■S

'Khtw«±1

UMiSQlMtit.i*■■r«wr-1"|11.I'jfiifl譚-

 

public(CQL&EaselnfdinfQj

S+rinjconipsnylD)-thro-vsCodineKuLeExceptiorL,EASB1sEucapticm,BOSEKceptian

Str-null:

ICodingRuleManageriCqdln^Ruleltana^er=CodingRuleManagerFactory

g:

etdemoteInstqnce();

i£(i匚odingRuleManager.isEKist(info,com.panyID))

ID)

ifIiCodingEuleMarLager.isUseIntermitJhimbEizfiLrLf□,campaiivID))"此处的□唧出步骡1)的"汀d时一報的,判断审户昱否启鼬鸟支薛功第

//启阳了断号強持助能,此时只是读取当前就新编碑,宜止前枪号在保存

sysNumber=i.CcdingRulcWIarLaeer・1:

亡adNwnhur(info』

companyID):

else

"没有启用断芳支挿功餾此时荻取了编码规则*生的编码sysNiunber二iCcdingltiileManag&r・getNumber(info.

couiipanylD)

returnFysNumber:

;

服务端调用,见框架的DataBaseControllerBean的setNumberFromCodingRule方法

 

Mj|(

*主応编码B/尽删擾畫量终编码的方法

*筍jamctz

“细电rascaller

x虫td*or^Id

*^throwsBOSException

y^ttirovsEASBizExc:

eptian

*/

protectedvoidsetttunib^rFrOJiCodingRule(CentctSjD^taBaselnfqcaller;,StTinsnrgId)throwsBOSExceniierbEASBizExceirticn

{

ICodir^RuleHarLassriCcdinjRuleMarLager=CodirgRuleMana^er?

actory

if(argld==null||argil.trimO*Len^thO==0)

{

return:

if(iCftdingRiileKarLager.isEKi^itcaller,orgld))

{

iftiCodingRuleManager.1sUseIntermitNumber(cal1er3orgld)數孔(!

iCodingRileMinager.isEserSelect(calleijorgld)))

{

calLer^setHunt&r(iCodin岂RuLeMariager”getNumber(calletjargTd)):

}

else

{|

if(iCodinffR'jleMsna£ei.1sAddVrew(caller.orald))

{^、

if.lCodinaREleManager.isModifiabLe'caller,orgld))

//炎断是否修改了編陽是否改大7:

顺序号

iCodLTLgRuleWar,ajer.checkHodifiedNumber(caLlerjor^Idj

caller.getNumberO,toString()):

else

{

//供么都汝选』斯增不显丞九诗断僉.业务诗空rumbEi■直在此吸置numbercallttrsttNumaer(iCDdingRul&MarLager

.gp+MimhpT1*»r,nrgTd))

}

}

 

StringaddNew(CodingRulelnfocodingRulelnfo)

增加一个新的编码规则对象,参数为待插入的编码规则对象

StringgetNumber(IObjectValuebizObject,Stringorg,

ParmCodingRulecustomProperty)

获取编码

Booleanupdate(CodingRuleInfocodingRuleInfo)

更新一个编码规则对象,参数为待插入的编码规则对象

Booleandelete(CodingRulelnfocodingRuleInfo)

删除一个编码规则对象,参数为待插入的编码规则对象

BooleandeleteByNumber(Stringnumber)

删除指定number的编码规则

CodingRulelnfogetCodingRule(IObiectValuebizObject,Stringorg)

获取编码规则对象

CodingRuleInfogetCodingRuleByNumber(Stringnumber)

获取指定number的

编码规则对象

CodingRulelnfogetCodingRuleByName(Stringname)

获取指定name的编码规则对象

String[]getBatchNumber(IObjectValuebizObject,CodingRulelnfo

codingrule,intcount)

用满足指定条件的编码规则对象生成指定的数量的编码返回

String[]getBatchNumberFromlnitialValue(IObjectValuebizObject,

Stringorg,Stringbindingproperty,StringcustomString,intcount)

从初始值开始批量

取一组编码-

StringgetSimulateNumber(CodingRulelnfocodingruleinfo)

获取满足指定条件的编码规则对象生成的模拟编码

StringsumLength(CodingRuleInfocodingruleinfo)

获取满足指定条件的编码规则对象的编码长度

StringreadNumber(IObjectValuebizObject,Stringorg,String

bindingproperty,StringcustomString)

读取满足指定条件的编码规则对象的生成编码只读

booleanhasCuscomString(IObjectValuebizObject,Stringorg)

满足指定条件的编码规则对象中是否包含有自定义段

StringgetNonbreakNumber(IObjectValuebizObject,Stringorg)

获取非中断的编码即不允许断号存在的编码

booleanisUserSelect(CodingRuleInfocr)

是否用户选择

booleanisExist(CodingRulelnfocr)

是否存在指定条件的编码规则对象

RuleStatusgetRuleStatus(IObjectValuebizObject,Stringorg,Stringbindingproperty,ParmCodingRulecustomPro)

获取规则的各种状态

booleanisUselntermitNumber(CodingRulelnfocr)

指定的编码规则是否启用断号支持功能

booleanisUseIntermitNumber(IObjectValuebizObject,Stringorg,

Stringbin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1