Skip to content
v1.0当前版本
文档版本当前使用指南

当前仅提供 1.0 使用指南

自动编号 ​

本章介绍自动编号的格式配置、发号时机、号位的分配与回收规则。

单据号、订单号一类"每条记录一个不重复编号"的需求,通过自动编号配置即可实现,无需编写公式。


1. 编号的组成 ​

一个编号由多个段拼接而成:

段类型作用示例
固定文本段不变的前缀或后缀BX-
字段引用段取当前单据某字段的值部门代码
日期段按当前日期生成,可设置到年、月或日20260724
流水号段自增数字,可设置补零位数0001

组合后可得到形如 BX-20260724-0001 的编号。

日期段按服务器时钟取值,不随使用者所在时区变化,避免出现同一天生成不同日期段的情况。


固定文本、日期与四位流水号组成单号

固定文本、日期与四位流水号组成单号

2. 发号时机 ​

时机行为
打开表单时(默认)新建单据时立即生成编号并显示,使用者可当场看到单据号
保存时点击保存后才生成编号。只打开查看而未保存的单据不占用号

明细表中的自动编号字段固定按"保存时发号"处理,无论配置为哪种时机——明细行本身随保存动作产生。


历史列表显示新采购单号、申请日期和自定义新增按钮

历史列表显示新采购单号、申请日期和自定义新增按钮

3. 号位的状态 ​

每个号位在以下状态间流转:

状态含义
预占已分配给某次填写,尚未正式生效
已使用单据已保存,该号永久属于这条记录
放弃打开表单取号后未保存即关闭,号位退回待发放队列
作废已保存的记录被删除后,其占用的号位转为此状态

作废的号默认不再发出,以免出现"某编号的单据被删除后又生成同一编号"的情况。

若业务确实需要回收,可将重用模式设置为允许回收作废号,此时作废号重新进入待发放队列。


4. 并发安全 ​

多人同时新建单据时不会取到相同的号。系统在发号环节做了互斥保护,任意时刻只有一个请求能取得某个具体号位。


5. 自动编号与「唯一」是两回事 ​

自动编号是取值方式,「唯一」是字段约束,两者独立配置。

情形系统行为
字段留空保存系统自动发号
手工填写一个编号允许。填入的值若不是系统发出过的号,不做重复检查;该字段若另外勾选了「唯一」,则走通用的唯一性校验
手填的值恰好是系统发过的号该号仍处于预占或作废状态时,直接认领给当前记录;已被其他记录正式使用时,提示编号冲突
历史记录的该字段原本为空编辑保存时系统为其补号

发号时系统会跳过业务数据中已经出现过的相同编号,避免与手工填写的编号相撞。


6. 常见问题 ​

问题说明
希望编号从指定数字开始,或跳过旧编号流水号段的起始值与位数在编号规则中配置
修改编号格式后旧编号会变吗不会。格式变更只影响之后新生成的编号,历史单据上的编号保持不变
需要编号不重复自动发出的号本身不重复。若同时允许手工填写并要求全局不重复,请另外勾选「唯一」

7. 相关章节 ​

编号文本与明细序号 ​

自动编号的值统一按文本处理,即使流水号段只包含数字,也不应把整段单据号当成可运算数值。主表自动编号与明细行内「序号」是不同功能:序号按当前有效明细行重新排列,不构成业务唯一编号。

规则涉及日期段时应核对执行人的时区及跨日边界。需要全局唯一时仍单独设置「唯一」,不能只依赖手工填写的编号规则。

使用者 · 应用开发者 · 实例管理者