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