XAF Number(編號)
阿新 • 來源:網路 • 發佈:2022-12-05
前言
編號在各類系統中都會存在,同時它還會根據業務場景的不同,會有不同的生成規則。XAF提供了一個編號生成助手(DistributedIdGeneratorHelper),它能在多併發的情況下,生成一個可遞增的唯一編號,它完全可以滿足一般場景的需求,但在一些特殊場景下,我們還需要對其進行擴充套件,如為了保持編號的連續性,我們需要對廢棄的編號進行回收再使用。下面是參考了Xafair編號生成的思路,再結合DistributedIdGeneratorHelper生成編號原理,建立一個了XAFNumbers模組,它可以通過配置的方式完成編號的生成,並自動賦值給對應的屬性。
示例
示例1
示例2
示例3
配置
-
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類的屬性
-
