Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

字段改名规则设计 #3076

Open
yinlianghui opened this issue Apr 18, 2022 · 0 comments
Open

字段改名规则设计 #3076

yinlianghui opened this issue Apr 18, 2022 · 0 comments
Assignees
Milestone

Comments

@yinlianghui
Copy link
Contributor

yinlianghui commented Apr 18, 2022

有一个对象A,当把其中的字段名称(api名称)改掉后相关历史数据如何处理,依赖了被改名字段的关联对象上相关规则是怎么样的?
以下是sf中相关功能规则(测试过程比较复杂,可以跳过直接看结尾的结论):

  1. 字段改名总体规则
  2. 修改普通字段名称
  3. 修改lookup字段名称
  4. 修改master_detail字段名称
  5. 修改公式字段名称
  6. 修改被公式字段引用的字段的字段名称
  7. 修改累计汇总字段名称(主表上的字段,比如总金额字段)
  8. 修改累计汇总字段要聚合的字段名称(子表上的字段,比如金额字段)
  9. 修改累计汇总字段功能中,子表侧的主子表master_detail关系字段名称
  10. 修改被验证规则引用的字段的字段名称
  11. sf规则总结

PS:第4条与第9条,都是改主子表关系中的子表侧的master_detail字段名称,但是侧重点不同。

字段改名总体规则

名称字段不能修改,其他任何字段在修改名称时都会提示谨慎处理:更改名称时请务必谨慎,因为可能影响现有集成。
image

修改普通字段名称

  • 修改后A对象列表及记录详细界面功能都正常,且历史数据中被改名字段也保留了原值。
  • 但是有进会遇到刚改后的一段时间,比如修改数值类型字段的名称,历史记录中的字段值显示为空白了,过段时间,大概数分钟后,所有功能会恢复正常

image

修改lookup字段名称

  • 修改后A对象列表及记录详细界面功能都正常,任何功能都没有报错,但是历史数据中被改名字段丢失了
  • 编辑任何A对象的历史记录会发现无法修改被改名字段的字段值,因为它显示成空白了(如下图所示)。

image

  • 虽然为对象A新建记录时看起来一切正常,而且新建记录时可以正常为被改名字段填写值,但是记录保存后,新建时填写的该字段值丢失了,而且无法通过编辑来修改该字段值。
  • 该lookup字段关联对象的相关功能都正常。
  • 后面我测试master_detail字段用相同的方式测试时发现master_detail很顺,并没有上面的问题,就重新测试了几次,发现是lookup修改字段名这块不稳定,等段时间会发现最终所有的功能都正常了(但是跟对象改名不一样,对象改名后等功能正常前会报错,字段改名不报错,但是功能异常,多等等又都正常了),即上面的A对象上新建记录及历史记录中被改名字段的字段值都正常了。

修改master_detail字段名称

  • 修改后A对象列表及记录详细界面功能都正常,任何功能都没有报错,而且历史数据中被改名字段的字段值保留了,并没有丢失,整个过程非常顺。
  • 该master_detail字段关联对象的相关功能都正常。

修改公式字段名称

  • 与lookup字段表现是一样的,修改后A对象列表及记录详细界面功能都正常,任何功能都没有报错,但是历史数据中被改名字段的字段值丢失了,包括新建记录时该字段字段也不能正确显示出计算结果,效果如下图所示,不过最终过段时间所有功能又都正常了。

image

  • 如果修改的公式字段被其他公式字段引用的话,那么引用该公式字段的公式字段中的公式内容中的对应字段名称会自动同步变更为新的字段名,比如公式字段testf1__c,改名前另一个公式字段引用了它,其公式为testf1__c + ":TEXT",当前面的公式字段改为为testf1ss1__c后,引用该字段字段的公式会同步变更为testf1ss1__c + ":TEXT"

修改被公式字段引用的字段的字段名称

修改后相关公式内容会更新更新,所有功能都没有报错,而且历史数据中相关字段值保留了,并没有丢失,整个过程非常顺。
比如对象A中有公式字段,其公式内容为testk1__r.testk2__r.Name,testk1__r是当前对象上的lookup字段,testk2__r则是其关联对象上的lookup字段,当把关联对象上的lookup字段的字段名改为testk2ss1__r后,A对象上的公式字段内容会自动同步更新为testk1__r.testk2ss1__r.Name

修改累计汇总字段名称(主表上的字段,比如总金额字段)

  • 修改后A对象列表及记录详细界面功能都正常,任何功能都没有报错,但是历史数据中被改名字段值丢失了

wecom-temp-d0392c880e412a3d78b03815d56572a3

  • 被修改的累计汇总字段关联的子表可以正常新建和修改记录,但是A对象上的累计汇总字段值期间一直是空的,并没有把子表新建和修改的字段值汇总到字段值中
  • 等待数分钟后(测试的时候记录数就3条而已,却等了好几分钟),汇总字段值又能正常显示,且正确汇总出了相关子表字段值

image

修改累计汇总字段要聚合的字段名称(子表上的字段,比如金额字段)

  • 被修改的聚合字段所属的对象,即子表对象上新建编辑记录功能都正常,任何功能都没有报错且聚合字段值立即能正常显示,并没有显示为空白值。
  • 修改后主对象A的列表及记录详细界面功能都正常,任何功能都没有报错,而且历史数据中累计汇总字段值立即可用,并没有出现过空白值的现象
  • 修改后立即在子表对象上新建记录或编辑主对象A上汇总字段要聚合的字段值,发现都能正常汇总显示在主对象记录的汇合字段中。

修改累计汇总字段功能中,子表侧的主子表master_detail关系字段名称

与上述修改要聚合的字段名称一样,一切正常,不影响任何汇总字段相关功能。

修改被验证规则引用的字段的字段名称

  • 修改后相关验证规则中的字段名称会自动同步更新为新的字段名,比如有验证规则amount__c > 10000,公式中引用了金额字段,当把金额字段名从amount改为amount1时,验证规则为自动同步改为amount__c > 10000`。
  • 刚修改后,会看到记录详细界面上该字段值变成空白了,这跟之前很多字段一样,原有的历史记录值也变成了空值,这段异常的时间内新建记录和编辑记录时字段值并不会被保存,而且验证规则并不会正常校验到金额超出时报错。

image

  • 过了较长时间(超过10分钟)后,验证规则功能恢复正常,历史记录中的金额字段值也都恢复了,其中异常期间输入的大于1万的金额值虽然没校验,但是最终恢复的值是字段改名之前的符合校验规则的值。

sf规则总结

名称字段不能修改,其他任何字段在修改名称时都会提示谨慎处理:更改名称时请务必谨慎,因为可能影响现有集成。
其名称修改后的规则总体就一句话“所有相关数据都要迁移,且历史数据都能保留原样”,详细规则如下:

  • 名称字段不允许修改,没有显示编辑按钮
  • 被改名的字段的历史数据会迁移到新的字段名称上了,且相关功能不受任何影响。
  • 如果修改的是lookup/master_detail/公式/累计汇总字段,则可能中间会有段时间该字段被隐藏或字段值没显示出来,最终都会正常显示。
  • 如果修改的字段是被公式字段引用的字段的话,包括公式字段之间如果有引用关系,则会自动更新公式内容修正里面的字段名称,而且这种同步更新是支持多层级的跨对象引用公式的。
  • 在汇总功能中,无论修改的是主表侧的汇总字段名称,还是子表侧要聚合的字段名称,亦或是子表侧关联master_detail字段名称,相关汇总功能均不受任何影响,且已有记录中的汇总字段值也正常保留着。
  • 在验证规则功能中,有验证规则引用的字段名被修改后,验证规则中的字段名会同步变更为修改后的字段名,相关功能不受任何影响,只是刚改名的一段时间内(超过10分钟)有异常,异常期间校验规则不生效,字段值也都不能查看和修改,但是临终所有功能包括历史记录中的字段值都会恢复正常。
@hotlong hotlong added this to the 2.2 milestone May 4, 2022
@hotlong hotlong modified the milestones: 2.2, 2.3 Jun 6, 2022
@hotlong hotlong modified the milestones: 2.3, 2.4 Dec 19, 2022
@hotlong hotlong removed this from the 2.4 milestone Apr 10, 2023
@hotlong hotlong added this to the 2.5 milestone Oct 23, 2023
@hotlong hotlong modified the milestones: 2.5, 2.6 Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants