按名称排序(自动编号)不能按预期的顶点工作

order by Name(auto number) doesn't work as expected apex

我创建了一个自定义对象并使用 Name 字段作为 autonumber 类型,TA - {0000} 是它的格式。

有一些示例数据:
TA - 666 TA - 777 TA - 888 TA - 999 TA - 1000
当我查询这个对象 order by Name desc 时,它返回如下:
TA - 999 TA - 888 TA - 777 TA - 666 TA - 1000

这不是我所期望的,谁能帮忙?

如果它创建了 3 位数字,则意味着您的自动编号格式最初是 TA - {000} 甚至 TA - {0}。值 "spill over" 一旦达到格式的最大值,它就会继续到 1000、1001,而不是将计数器循环回 0。

所以最初创建该字段的人并没有提前计划。

你能做的就是尝试修复数据。

  1. 首先在沙盒中尝试,而不是直接在生产环境中尝试
  2. 宣布您将要处理很多事情,在您完成之前,任何人都不应在此对象上创建任何新记录。如果需要 - 通过大量冻结他们的用户帐户或撤销个人资料上的 "Create" 权限来将人们拒之门外...
  3. 尝试将字段类型从自动编号更改为文本。如果在任何代码中引用了该字段 - 您必须暂时将其注释掉。
  4. 运行 数据修复 - 例如全部导出,修复 excel,导入更新。什么对你有用。祈祷你没有达到任何验证规则(可能需要临时禁用一些?)
  5. 将字段翻转回自动编号,这次选择足够长的格式字符串。您将可以选择指定计数器的初始值。
  6. 试试看,创造新记录。如果一切正常 - 删除该记录并再次重置计数器。
  7. 撤消您在验证规则、顶点等方面所做的任何更改
  8. 解锁用户