首页 > 其他分享 >XAF Number(编号)

XAF Number(编号)

时间:2022-12-05 09:14:49浏览次数:49  
标签:示例 BO Number 生成 编号 XAF

前言

编号在各类系统中都会存在,同时它还会根据业务场景的不同,会有不同的生成规则。XAF提供了一个编号生成助手(DistributedIdGeneratorHelper),它能在多并发的情况下,生成一个可递增的唯一编号,它完全可以满足一般场景的需求,但在一些特殊场景下,我们还需要对其进行扩展,如为了保持编号的连续性,我们需要对废弃的编号进行回收再使用。下面是参考了Xafair编号生成的思路,再结合DistributedIdGeneratorHelper生成编号原理,创建一个了XAFNumbers模块,它可以通过配置的方式完成编号的生成,并自动赋值给对应的属性。

示例

示例1

image

image

示例2

image

image

示例3

image

配置

image

image

  • Numbers是在IModelApplication下的,它下面可以包含多个Number,每一个Number都是一个编号定义。

  • Number是编号定义,下面是它的主要参数

    • AllowRetrieve 是否回收编号,默认为false,为true时,删除BO后,会自动回收编号,也可以调用API回收编号

    • KeyTemplate Key用于对编号进行分组,当Template中用到了日期或BO中的属性,都需要对KeyTemplate进行定义

    • Template 编号的模板,使用了String.Format,<INDEX>表示当前索引值,<NOW>表示当前时间

    • StartValue 编号的开始值

    • Step 编号每次递增的值

  • NumberLink是用于链接BO类与属性,每个Number可以包含多个NumberLink,下面是它的主要参数

    • ApplyStrategy 应用编号的策略(时机),它的值为AfterCreate(创建后)或OnSave(保存时)

    • ModelClass 将编号应用到的BO类

    • Property 将编号应用到BO类的属性

标签:示例,BO,Number,生成,编号,XAF
From: https://www.cnblogs.com/haoxj/p/16950588.html

相关文章