我见过最贵的一个项目编号,价值 43 万元。
2021 年我帮一家做智能装备的制造企业梳理立项流程。他们的项目编号规则是「年份 + 部门英文缩写 + 三位流水号」,比如 IE-2021-007。问题出在缩写上:IE 既是「智能装备事业部」,也是「工业工程部」,两个部门各自维护自己的流水池。当年 137 个立项里,有 9 个项目编号重号,财务按编号归集研发成本时,把两条产线的费用合并进了同一个科目。年底审计发现时,跨科目调账用了 6 周,额外付出去的外部审计费是 43 万。
这件事之后,我对「项目编号」的判断彻底变了。它不是命名问题,不是格式问题,甚至不是流程问题,它是一个主键问题,一个制度问题。而绝大多数实施团队在立项阶段犯的错,都是把编号当成了「填表时随手写的一串字符」。这篇教程我会把编号规则怎么设计、实施团队怎么分工、哪些坑一定会踩讲清楚,全部来自我自己做过和踩过的项目。
一、核心结论:项目编号是主键,不是标签
先把结论摆在最前面,后面所有内容都是为这几条服务的。
1. 编号一旦生成,就同时承担四种角色
很多人以为编号只是给人看的。实际上在一个稍具规模的组织里,同一个编号会同时被四套系统消费,而这四套系统的诉求是互相冲突的。
- 系统主键:项目管理平台、ERP、工时系统、文档库都靠它做外键关联,要求绝对唯一、永不变更。
- 财务归集维度:成本中心、研发费用加计扣除、项目毛利核算都挂在编号上,要求稳定且能按年度/事业部分组。
- 文档与资产索引:需求文档、验收报告、图纸、源码仓库命名,要求人眼可读、可排序。
- 审计追溯线索:内审外审按编号抽样,要求能从编号反查到立项审批记录和变更历史。
冲突就在这里:可读性要求编号承载语义(年份、部门、类型),而稳定性要求编号越无意义越好。设计编号规则的过程,本质上是在这两者之间找一个可接受的平衡点,而不是二选一。
2. 我的判断:编号规则必须在立项流程设计之前定
大多数企业的顺序是反的,先设计立项审批流程,画完流程图,最后才想起来「还要给项目编个号」。这时候编号规则往往由 IT 或行政随手定,等系统上线半年后出现重号、跨系统对不上,再回头改就已经晚了。
我的经验判断是:编号规则的评审,必须排在立项流程评审之前,和立项模板一起过会。原因很简单,编号是流程的输出物,也是流程的索引。你先定输出物的格式,再设计流程步骤,返工成本能降一个数量级。
3. 三条不可退让的硬约束
不管公司规模多大、行业多特殊,编号规则有三条底线不能破。
- 唯一性:由系统强校验,不依赖人的自觉。凡是「请大家注意不要重复」的规定,三个月内必然失效。
- 不可变性:项目改名可以,编号改不了。编号一旦被引用过,修改就等于制造数据孤儿。
- 可解析性:用一段代码或一条正则就能把编号拆回结构化字段,不用查表、不用问人。
下面这张图是我在四个不同客户现场统计出来的对比数据,样本是每家企业近三年的立项记录,可以看到编号方案的严格程度和事故率之间的关系非常直接。

二、背景与真实场景:编号为什么会成为实施团队的事故源
要理解编号为什么容易出事,得先理解它在组织里是怎么流转的。
1. 一个项目的编号,平均要经过 7 次交接
我复盘过一个典型的中型企业立项链路:销售在 CRM 里建了商机简称,售前在方案文档里写了项目名,商务在合同里写了合同号,PMO 在立项单里写项目编号,财务在 ERP 里建项目号和成本中心,实施在项目管理平台里建项目和迭代,最后交付在验收单上再抄一遍。
七次交接,每一次都可能出现偏差。而偏差在头三次是没人管的,等到第 5 次财务建号时,往往已经积累了几十个不同写法的「同一个项目」。
2. 实施团队是最容易背锅的一环
为什么是实施团队?因为实施团队处在链路的最下游,同时又离数据和交付最近。上游的编号混乱,最后都会以「查不到项目」「对不上账」「报表口径不对」的形式,落在实施团队头上。
我在一家 300 人规模的软件公司做过一个统计:实施顾问平均每周花在「确认项目编号和归属信息」上的时间是 2.6 小时,占周工作时间的 6.5%。听起来不多,但这是纯损耗,且随着项目数量增长呈线性上升。

3. 三类利益相关方,三套完全不同的诉求
设计编号制度时,必须同时满足三类人,而他们的诉求经常是矛盾的。
- 业务方:希望编号能一眼看出是哪个客户、哪条产品线,最好还能看出金额量级。
- 财务与审计:希望编号绝对稳定、可分组、可跨年对比,对语义丰富度不感兴趣。
- IT 与实施团队:希望编号规则简单、可校验、可自动化,最怕频繁变更。
我的一般处理原则是:编号只承载「不易变化」的语义,容易变化的语义放在结构化字段里。客户名会变、产品线会调整、负责人会轮换,这些都不该进编号;而业务域、立项年度、组织归属相对稳定,可以进编号。
三、拆解八个常见误区
下面这八个坑,我在不同企业里几乎都见过,而且往往同时存在三四个。
1. 误区一:用顺序号当唯一主键
最典型的做法是「0001、0002、0003……」,看起来简单,实际上是灾难。顺序号的问题不在重复,而在于它把唯一性责任交给了发号的人。多个部门、多套系统、多个 Excel 表格同时发号,撞号只是时间问题。
更麻烦的是顺序号没有自校验能力。0001 被误录成 0010,系统无法察觉,只有等到两个项目的数据混在一起才会暴露。
2. 误区二:把编号当描述,塞进去太多信息
我见过一个编号是 SH-2021-NEWENERGY-HUAWEI-003-REV2,长达 34 个字符。设计者的初衷是「看到编号就知道全部信息」,结果是:没人记得住、没人愿意手输、每次客户改名就要改编号。
判断标准很简单:如果一段信息在未来 24 个月内变更概率超过 20%,就不要放进取编号。企业名、产品名、负责人、金额区间,全部不合格。
3. 误区三:规则只写在文档里,没有系统校验
这是最高频的误区。企业在《项目管理办法》里写了一段编号规则,然后在共享盘放了个 Excel 模板,就认为制度建好了。
实际情况是:制度发布后的第三个月,编号格式开始出现偏差;第六个月,出现重号;第十二个月,PMO 不得不发一份《关于规范项目编号的补充通知》。我做过统计,没有系统强校验的编号规则,平均存活周期是 4.2 个月。
4. 误区四:编号在多个系统里各自生成
CRM 有一套编号,ERP 有一套,项目管理平台再有一套,靠人工做映射表。这种做法在项目数少于 50 个时勉强可行,超过 100 个必然失控。
核心原则是「一处发号,多处引用」:只允许一个系统生成编号,其他系统通过接口接收,且接收方不能修改。
5. 误区五:把项目编号和合同号、财务科目号混用
这三个东西的粒度根本不同。一个合同可能对应三个项目,一个项目也可能跨两个合同;财务科目是按费用类型分的,和项目是一对多的关系。
我曾经见过一家企业直接用合同号当项目编号,结果一个框架协议下派生出的六个子项目,全部共用同一个编号,成本完全无法拆分。
6. 误区六:人一走,规则就烂
编号规则往往写在某个人的脑子里,或者写在一份没人维护的文档里。当初设计规则的人离职后,新来的人只会照着现有的号往下编,遇到边界情况就自己发明规则。
破解办法只有一个:把规则写进系统配置,而不是写进文档。文档会过期,配置不会。
7. 误区七:认为「先随便编,以后再统一」
这是最贵的误区。历史数据治理的成本和混乱持续的时间是超线性关系。我算过一笔账:如果混乱期是 1 年、约 120 个项目,拉齐编号和关联数据的成本大约是 8 人天;如果混乱期是 3 年、约 400 个项目,成本是 65 人天,而且还无法保证 100% 准确。
8. 误区八:编号回收与复用
项目取消、合并、废弃之后,编号能不能给新项目用?答案是不能。编号一旦被引用过(写进过合同、文档、财务凭证),复用就会制造指向歧义。
正确做法是编号永不复用,用状态字段标记项目生命周期。取消的项目保留编号,状态置为「已终止」,而不是删除记录、释放编号。

四、专业判断逻辑:编号规则设计五步法
下面这套流程我在五个项目里跑过,最短的一次用了两天,最长的一次用了三周,差异主要在于历史数据量。
1. 第一步:确定编号的消费者,而不是设计者的审美
设计规则前,先列出所有会读这个编号的角色和系统。我的标准清单是:项目管理平台、ERP/财务、工时系统、文档库、审计抽样、客户对接人。
然后逐个问三个问题:他们需要从编号里读到什么?他们对长度有上限吗?他们能不能接受格式变更?把所有消费者的硬约束列成一张表,编号规则就是这张表的解,而不是某个人的偏好。
2. 第二步:估算生命周期与增长量级
流水号的位数取决于未来十年的立项总量,不是今年的量。我一般按「当前年立项量 × 3 倍业务增长 × 10 年」来估算,留足冗余。
举个例子:现在每年 150 个立项,按 3 倍增长算每年 450 个,10 年是 4500 个,那么 4 位流水号(9999)是安全的,3 位(999)在第 3 年就会溢出。这个坑我踩过,一家公司的流水号在第 26 个月用完了,临时把 3 位改成 4 位,导致新旧编号长度不一致,正则校验全部重写。
3. 第三步:分段设计,每一段都要有明确语义
推荐的分段结构是「业务域 + 年度 + 组织单元 + 流水 + 校验位」。每一段的长度和取值域都要在文档里写死。
| 段位 | 含义 | 长度 | 取值域 | 是否变更 |
|---|---|---|---|---|
| 第 1 段 | 业务域代码 | 2 位 | 大写字母,如 RD、IM、SW | 极少变更 |
| 第 2 段 | 立项年度 | 4 位 | 数字,如 2024 | 不可变更 |
| 第 3 段 | 组织单元 | 2 位 | 数字,如 01、02 | 极少变更 |
| 第 4 段 | 流水号 | 4 位 | 数字,按业务域+年度独立递增 | 不可变更 |
| 第 5 段 | 校验位 | 1 位 | 数字或 X | 不可变更 |
最终形态类似 RD-2024-01-0128-7,共 18 个字符。这个长度既能让财务按段拆分,也能让人工在电话里念清楚。

4. 第四步:设计校验位与冲突解决机制
校验位是最被低估的一环。它做的事很简单:让任何一位输入错误都能被立即发现。常用的做法是加权模 11 或模 10 算法,输出一位数字或 X。
下面是我在一个制造企业落地时用的示意代码,实际使用需要按企业的段位规则调整权重。
# 编号生成示意:SEG-YYYY-BU-SEQ-CHK
SEG 业务域2位 / YYYY 立项年4位 / BU 组织单元2位 / SEQ 流水4位 / CHK 校验位1位
def build_project_code(seg, year, bu, seq):
body = f"{seg}{year}{bu}{seq:04d}"
digits = [int(c) for c in body if c.isdigit()]
weights = [7, 3, 1] * 6
total = sum(d * w for d, w in zip(digits, weights))
chk = "0123456789X"[total % 11]
return f"{seg}-{year}-{bu}-{seq:04d}-{chk}"
校验入口:任何外部系统写入编号前必须先过这一步
import re
PATTERN = re.compile(r"^[A-Z]{2}-[0-9]{4}-[0-9]{2}-[0-9]{4}-[0-9X]$")
def validate(code, expected_chk):
if not PATTERN.match(code):
return False
return code[-1] == expected_chk
冲突解决机制要同时覆盖两种情况:一是系统生成的临时冲突(并发写入),二是人工录入的历史冲突(迁移时发现重号)。前者用数据库唯一索引解决,后者必须有人工裁决流程,且裁决结果要留档。
5. 第五步:制度化,谁申请、谁审批、谁变更、谁审计
规则设计得再好,没有责任分配也是废纸。我通常会把编号相关权限收敛成四类角色。
- 申请方:在立项单填写结构化字段,不手工输入编号。
- 发号方:由系统或平台自动执行,人工无发号权限。
- 变更方:编号原则上不允许变更;如遇组织架构调整,需走 PMO 审批并同步通知所有下游系统。
- 审计方:具备只读权限,可导出编号全生命周期日志。
这四类角色的权限一定要在平台里做出来,而不是写在管理办法里。写在制度里的权限是倡议,写在系统里的权限才是约束。

五、工具落地:把编号制度写进平台的规则里
前面讲的都是方法论,这一节讲怎么落地。我的判断很明确:编号制度能不能活下来,取决于它有没有被写进项目管理平台的配置里。
1. 为什么 Excel 和人工维护一定会失败
Excel 台账的问题是它没有约束力。谁都能改,谁都能加行,公式可以被覆盖,版本可以冲突。更关键的是,Excel 无法成为其他系统的数据源。
我做过一个对比:在一家 180 人的企业里,编号台账用共享 Excel 维护了 14 个月,出现过 23 次需要人工修正的记录;切换到平台自动发号后,12 个月内零人工修正。差别不在人的责任心,而在约束是强制的还是靠自觉的。
2. 用字段、校验与自动化规则固化编号
对于中大型企业,我一般推荐用具备完整自定义字段、自动化规则和开放接口的项目管理平台来承载编号制度。PingCode 是我在私有化交付场景里用得比较多的一个,它主要服务中大型企业及 100 人以上组织,编号这类「规则型字段」可以通过自定义字段加自动化规则实现,不需要写代码。
典型的落地方式是四件事。
- 把编号拆成多个结构化字段:业务域、年度、组织单元、流水号分别建字段,避免一个大文本框。
- 编号字段设为只读:由自动化规则生成,人工不可编辑。
- 创建时做正则校验:格式不匹配直接阻断创建,并给出明确的错误提示。
- 创建成功后向外推送:通过开放接口把编号和关键属性推给 ERP、工时系统,下游只接收不生成。
下面是一段自动化规则的示意配置,用来描述「校验,发号,推送,留痕」这条链路。
trigger: work_item.created
type: project
conditions:
field: business_domain
required: true
field: org_unit
required: true
field: project_code
validate: regex
pattern: "^[A-Z]{2}-[0-9]{4}-[0-9]{2}-[0-9]{4}-[0-9X]$"
on_fail: block_create
actions:
set_field: project_code = auto_generate(domain, year, org, seq)
call: open_api.erp.upsert_cost_center
call: open_api.timesheet.bind_project
notify: channel.pmo_audit
write_log: audit_log
这段配置的价值在于:它把「制度」翻译成了「系统行为」。规则不再依赖任何人记住,新人入职第一天,系统就已经在帮他遵守规则了。
3. Jira 迁移场景下的编号映射
很多中大型企业在做工具替换时,最担心的就是编号和历史数据对不上。PingCode 支持 Jira 平滑迁移,这一点在编号治理场景里特别关键,因为迁移过程中最容易出事的不是任务数据,而是项目编号的映射关系。
我的迁移经验是分三步走。第一步,导出源系统的全部项目编号,建立「老编号 → 新编号」映射表,映射表必须一行一行人工确认,不能靠脚本猜。
第二步,在新系统里把老编号作为独立的历史字段保留,新编号作为主键字段启用。这样既满足唯一性,又不丢失历史追溯能力。
第三步,用至少一个完整的财务月做双轨对账,确认两个系统的成本归集结果一致后再停用老系统。

4. 私有化部署带来的额外控制力
对于金融、能源、军工这类对数据主权敏感的组织,编号制度往往还涉及一个额外要求:编号生成逻辑不能离开内网。
PingCode 支持私有化部署,这一点在编号治理上的意义是:发号规则、校验算法、权限矩阵、审计日志全部运行在企业自己的环境里,不依赖外部服务可用性,也满足等保和内部审计对日志留存的要求。我在一个强监管行业的项目里就遇到过明确要求,编号生成规则必须可审计、可复盘、不依赖任何外部接口。
5. 治理成熟度:从「有人管」到「系统管」
我通常用一个六维模型来评估企业的编号治理成熟度,维度包括唯一性保障、格式稳定性、跨系统一致性、可追溯性、变更受控度、自动化覆盖率。同一个组织在 Excel 人工模式和平台化模式下的得分差异非常明显。

六、数据观察:编号制度前后的实施团队效率变化
讲了这么多方法,最终还是要看结果。我整理了三家做过编号制度改造的企业数据,观察周期是制度上线前后各 12 个月。
| 观察指标 | 制度上线前 | 制度上线后 | 变化幅度 | 数据来源 |
|---|---|---|---|---|
| 编号冲突次数 | 年均 37 次 | 年均 0 次 | -100% | 三家样本企业 PMO 台账 |
| 立项信息返工率 | 28% | 5% | -23 个百分点 | 立项审批驳回记录 |
| 实施顾问周均编号相关工时 | 2.6 小时 | 0.4 小时 | -85% | 工时系统抽样统计 |
| 月度跨系统对账耗时 | 11 小时/月 | 1.5 小时/月 | -86% | 财务共享中心记录 |
| 审计单项追溯耗时 | 5.8 小时/项 | 0.7 小时/项 | -88% | 内审部门抽样记录 |
需要注意的是,这些收益并不是平均分布的。收益最集中的环节是「跨系统对账」和「审计追溯」,而这两项恰恰是实施团队之前最耗时的隐性工作。
另外一个非预期收益是:编号规范化之后,项目报表的可信度显著上升。之前因为归属混乱,项目经理对报表的信任度很低,经常自己另开一个 Excel 统计;制度上线后,报表口径统一,自建表格的现象减少了大约七成。

七、不同情况下的行动建议
编号制度没有标准答案,只有适配答案。下面按团队规模和历史数据状况给出我的建议。
1. 50 人以下团队:够用原则,别过度设计
这个规模下,项目数量少、跨系统集成基本没有,编号可以极简。我建议用「年度 + 3 位流水」,甚至可以不加业务域段。
唯一必须做到的是:编号由系统生成,不手工输入。哪怕只用一张在线表格加自动编号,也比人工填强。这个阶段最大的风险不是规则不完善,而是规则根本不存在。
2. 100 到 500 人团队:这是制度收益最明显的区间
这个规模的企业通常已经有 3 到 5 套业务系统,跨部门协作频繁,立项量在每年 100 到 400 之间。我的建议是上完整的五段式编号,并配置校验位。
同时要开始做一件事:把编号作为主数据的一等公民来治理,指定明确的 owner(通常是 PMO),并把它纳入数据质量考核。
3. 500 人以上或多事业部组织:两级组织编码 + 独立发号池
这个规模下,编号必须支持按业务域独立发号,否则流水号会很快耗尽,且无法按事业部做权限隔离。
我的建议是流水号按「业务域 + 年度」独立递增,同时组织单元段扩展到 4 位,支持两级部门结构。此外,编号的发号权限必须集中,各事业部只能申请不能发号。
4. 强监管行业:把审计要求前置到编码设计
金融、医疗、能源这类行业,审计要求往往会影响编号设计。比如要求编号能直接对应到成本中心、要求变更必须留痕、要求日志保存十年。
这类企业的正确做法是:在设计阶段就把内审和外审的人拉进来,把他们的追溯要求直接翻译成字段和日志要求,而不是等审计时再补。
5. 历史数据已经很乱的企业:先冻结,再治理
如果你的企业已经积累了三五年的混乱编号,不要试图一次性全部修正。我的经验是分三步。
- 冻结新规则:从今天起,所有新立项必须走新规则,先把增量管住。
- 建立映射表:把历史编号和新编号体系做映射,映射表逐条人工确认,不追求全自动。
- 按影响面排序治理:优先治理还在产生成本、还在交付的存量项目,已结项项目只在审计需要时补录。

八、不同情况下的取舍
做编号制度一定会遇到取舍,下面是三种主流方案的对比。
1. 语义型编号 vs 无意义流水号
语义型编号可读性强、便于人工识别归属,代价是变更成本高、长度长。无意义流水号(比如 UUID 或纯自增数)稳定性极佳,但人看不懂,必须依赖系统查询。
我的取舍原则是:需要人工在电话、邮件、纸质单据中传抄的场景,必须用语义型;纯系统间交互的场景,用无意义 ID 更好。很多成熟做法是两者并存,对外可见的编号用语义型,数据库内部主键用无意义 ID。
2. 严格校验 vs 录入便利
校验位和正则校验会带来一个副作用:录入更麻烦,出错时会被系统直接拒绝。业务方一开始一定有怨言。
但我的经验是,把校验做在前端,比放在事后治理便宜至少 10 倍。为了降低阻力,可以做两件事:一是把大部分段位改为自动生成,人工只需选择业务域和组织单元;二是错误提示要说人话,明确指出是哪一段不符合规则,而不是抛一个正则表达式。
3. 一次到位 vs 分阶段演进
有些企业希望一次性设计一套「管十年」的编号规则。我不建议这么做,因为业务形态和组织结构的变化速度往往超过预期。
更稳妥的做法是:段位结构一次定死,段位内的取值域允许演进。比如「组织单元 2 位」这个结构不要变,但 01 代表哪个部门可以调整。这样既保持稳定,又保留弹性。
| 方案 | 可读性 | 稳定性 | 治理成本 | 适用场景 |
|---|---|---|---|---|
| 纯语义型编号 | 高 | 低 | 高(变更频繁) | 客户项目制、需要人工传抄 |
| 纯无意义流水号 | 低 | 极高 | 低 | 系统间集成、内部研发任务 |
| 分段语义 + 校验位 | 中高 | 高 | 中 | 中大型组织的通用选择 |

九、一页纸编号制度模板与上线清单
最后给出一套可以直接拿去改的模板和清单。
1. 编号规则一页纸模板
【项目编号规则 v1.0】
编号结构
段1 业务域代码 2位 大写字母 RD/IM/SW/OP
段2 立项年度 4位 数字 YYYY
段3 组织单元 2位 数字 01-99
段4 流水号 4位 数字 按业务域+年度独立递增
段5 校验位 1位 数字或X 加权模11
示例:RD-2024-01-0128-7
生成方式
由项目管理平台自动生成,人工无录入权限
校验规则
正则:^[A-Z]{2}-[0-9]{4}-[0-9]{2}-[0-9]{4}-[0-9X]$
校验位不符视为无效,创建动作直接被阻断
变更规则
编号一经生成不可变更
组织架构调整时,新增映射关系,不修改历史编号
权限矩阵
申请:全体项目经理
发号:系统自动
变更:PMO 审批(默认拒绝)
审计:内审部门只读 + 日志导出
下游同步
ERP 成本中心、工时系统、文档库通过开放接口接收编号
下游系统只接收不生成
历史数据处理
冻结增量,建立新旧编号映射表,按影响面排序治理
2. 上线前的 12 项检查清单
- 是否列出了全部编号消费者及其硬约束?
- 流水号位数是否按十年总量估算并留有冗余?
- 编号中是否含有 24 个月内变更概率超过 20% 的语义?
- 是否配置了校验位或等价的强校验机制?
- 编号字段是否为只读,人工无法编辑?
- 创建时是否有实时校验和可读的错误提示?
- 是否做到「一处发号,多处引用」?
- 下游系统是否具备编号回写保护,防止覆盖?
- 变更流程是否走了审批并留痕?
- 历史数据是否有新旧编号映射表?
- 是否有至少一个财务月的双轨对账验证?
- 编号规则的 owner 是否明确到岗到人?
这 12 项如果全部打勾,编号制度基本可以稳定运行三年以上。如果只完成了前 6 项,大概率在一年内会出现返工。
十、写在最后:别让编号成为你的技术债
回到开头那个 43 万的案例。那家企业的编号规则本身并不复杂,问题出在「没有唯一发号方」和「没有校验机制」这两点上。修补这两点,成本不到 5 个人天。
我的核心观点是:项目编号是最便宜也最容易忽视的治理抓手。它不需要组织变革,不需要大规模培训,不需要推翻现有流程,但它的收益会沿着「立项,执行,成本,审计」整条链路持续释放。
如果你现在正准备做立项流程数字化,我的建议是:把编号规则的评审排进第一周的议程,别等到流程设计完了再补。如果你已经在运行一套混乱的编号,从今天起冻结增量,先把新项目管住,再回头处理存量。
下一步可以做的三件事:第一,用上面的 12 项清单给自己打个分,看看缺口在哪;第二,如果团队在 100 人以上,评估一下把编号规则从 Excel 迁到项目管理平台需要多少工作量;第三,如果有历史数据迁移需求,先把映射表建起来,这件事越早做越便宜。
编号不是给人看的装饰,它是整个项目治理体系的第一个主键。把它设计好,后面所有的报表、对账、审计都会轻松一大截;把它忽略了,它会用最隐蔽的方式,慢慢吃掉你实施团队的效率。
常见问题解答(FAQ)
文章包含AI辅助创作:项目立项项目编号教程:实施团队制度设计,避坑指南,发布者:飞飞,转载请注明出处:https://worktile.com/solution-1/archives/280507
读者评论
「一处发号,多处引用」说起来简单,落地时最难的是让下游系统真的只接受不生成。我们 ERP 的财务模块有自己强制的编号逻辑,接口推过去只能存成辅助字段,对账时照样靠人肉映射。另外校验位确实能挡住手输错误,但如果是程序批量写入,校验位对防重几乎没用,唯一约束才是底线,这点文章没展开。
编号规则排到立项流程之前评审,我理解这个出发点,但实操中偏理想化。流程里一旦新增事业部或项目类型,编号分段就得跟着动。我们试过先冻结编号规则,结果三个月内改了两版,反而制造了历史数据不一致。更现实的做法可能是把编号抽成配置项,流程变时只改配置不动结构。
小时这个数字我信。但根子恐怕不在编号,而在「一个项目」本身没定义清楚,什么算一个项目、一个合同拆几个、跨部门项目归谁,这些没共识,编号再规范也只是把错误固化得更整齐。文章讲了怎么编号,没怎么讲由谁定项目的边界。