编号规则功能详细设计(2014版).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编号规则功能详细设计(2014版)

编号规则模块功能详细设计 版本记录 日期 描述 作者 svn版本 2014/1/22 初稿 潘微微 模块说明 模块作用 编号规则属于工具模块,在系统的很多业务模块中都存在编号来标识数据,就需要有一个模块能尽量适用各种存在规律的编号的生成,编号规则负责该部分的工作,所以该模块属于工具模块,被各个地方所引用。 名词解释 编号:用于标识一个业务实例、数据条目的有一定业务规则的字串,业务称谓上通常由前缀、主号码、后缀等组成。整个编号字串从技术称谓上可以分为的一个或多个部份 ,这些部份叫“编号片段”,每个“编号片段”由一个原子级的编号规则构成。 编号规则:本设计框架支持一套可扩展的编号规则库。目前本设计预制了以下几种规则:固定字串、自增(减)序号、枚举形序号库、年月日时分秒格式数字、当前账户组织单元属性、当前账户部门属性、当前账户人员属性、自定义参数注入。本系统将按这些规则实现不同的“规则提供器”。 序号实例:对于自增(减)序号、枚举形序号规则系统建立序号实例库;这两种规则,需要根据不同的参数形成不同的序号实例。每个序号实例条目记录了:实例区分组合字串、当前序号最大(小)值等。 原理与算法 编号引擎 规则定义说明 规则定义分为:规则和规则明细定义。规则定义用于定义一个规则类型,用于识别不同的业务类型调用不同的编号规则。外部业务通过“单据类型编号”(TypeId)调用不同的编号规则。规则明细定义了编号片断的组成规则和需要配置的项目。规则明细以规则定义为表头。按排列顺序形成编号的组成规则。 固定字段规则生成器:配置一个固定字串 自增(减)序号:是按数字递增(简)规则产生编号片断的。可以配置数字格式如:“#####”(缺位需用0补齐)或“##,###”(戴格式的数字)可以配置数字起步值、最大值、步长(负步长表示递减)。序号实例区分参数:支持的参数包括全部(除当前明细)的规则明细,这些明细可以按顺序配制成一个字串组合。当运行时,系统按当前请求根据这些参数组成一个字串,然后到“序号实例”库表里查找,如果没有找到,则创建数据条目并从本规则明细的数字起步值开始记录当前序号。如果找到,则从此条目当前序号加步长记录当前序号。此规则还可以通过“序号实例”界面查看当前所有序号实例条目数据,并支持单独维护(实例区分组合字串、当前参数值下的序号的实际值)。还可以配置是否强制连续序号:如果需要强制连续序号,则系统不再自主递增(减)序号,需要外部API来提交递增(减)序号。且如果跳号,则会抛错(具体算法见后面说明)。 枚举形序号库:是按预定义好的序号库来输出编号片断的,比如:“A,B,C….”的字母顺序,当前如果是B了,则下次调用则产生C字母。序号库配置定义在规则明细上,采用“,”区分枚举项。还可以配置正序、倒序。仍可以配置“序号实例区分参数”和“配置是否强制连续序号”。(具体实现方案可以参照自增(减)序号规则提供器) 年月日时分秒格式数字:从当前服务器时钟里获得编号片断的规则提供器。可以配置年月日时分秒的格式输出形式。 当前账户组织单元属性、当前账户部门属性、当前账户人员属性:将从当前账户登录系统后形成的session里提取这些信息。系统支持“classname.propertyname”形式配置提取信息。 自定义参数注入:根据系统调用API的定义,支持从调用直接带入参数用于编号片断。系统支持前台ajaxAPI调用参数,基于json串识别参数名,参数值。后台map识别参数名,参数值。本规则可以配置一个参数名。还可以配置直接从:session、request、里提取参数。 配置是否强制连续序号算法实现说明 配置是否强制连续序号用于实现采用“由于自增(减)序号、枚举形序号库”的规则生成器。下面用是强制、否强制来简化称谓。 否强制:系统将在调用编号请求API时就对序号进行自增(减)并持久化到序号实例库内。好处是使用简单,基本不用考虑序号重复问题。接近于随机数发生器。缺点是序号不连续(当产生时不提交业务或提交失败)。 是强制:系统不会在调用编号请求API时就对序号进行自增(减),而是需要通过与业务提交同事务内的更新API来驱动对序号进行自增(减)并持久化到序号实例库内。举例某纯Integer数字递增序号提供器具体算法如下: 调用时API分为初始化session缓存和获得编号两个API;假定获得编号时有两个session都要请求序号,而当前序号为4;则两个session内通过初始化API(用“实例区分组合字串”作为属性key)放入4(假定“实例区分组合字串”相同)。调用API时(此API从session里创建新序号)各装入(session1:567;session2:56789)则当前:session1最大序号值为7;session2为

文档评论(0)

kakaxi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档