gpt4 book ai didi

salesforce零基础学习(一百二十六)PicklistValueSet优缺点和使用探讨

转载 作者:我是一只小鸟 更新时间:2023-03-05 22:33:20 34 4
gpt4 key购买 nike

本篇参考: https://help.salesforce.com/s/articleView?id=sf.fields_creating_global_picklists.htm&type=5 。

当我们创建Picklist 字段时,比如很多表很多字段都会用到同样的 picklist value时,我们通常会使用 Global Picklist。入口为 set up搜索 picklsit以后选择 Picklist Value Sets然后针对业务上需要的场景,进行字段创建以及picklist value维护.

当我们创建picklist类型字段,可以选择基于 global picklist还是基于换行的手动输入.

我们以这两个类型进行metadata查看 。

针对 Code_By_Customize__c,此字段通过换行方式去输入.

                          
                            <?
                          
                          
                            xml version="1.0" encoding="UTF-8"
                          
                          
                            ?>
                          
                          
                            <
                          
                          
                            CustomField 
                          
                          
                            xmlns
                          
                          
                            ="http://soap.sforce.com/2006/04/metadata"
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          Code_By_Customize__c
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            externalId
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            externalId
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          Code By Customize
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            <
                          
                          
                            required
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            required
                          
                          
                            >
                          
                          
                            <
                          
                          
                            trackFeedHistory
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            trackFeedHistory
                          
                          
                            >
                          
                          
                            <
                          
                          
                            type
                          
                          
                            >
                          
                          Picklist
                          
                            </
                          
                          
                            type
                          
                          
                            >
                          
                          
                            <
                          
                          
                            valueSet
                          
                          
                            >
                          
                          
                            <
                          
                          
                            restricted
                          
                          
                            >
                          
                          true
                          
                            </
                          
                          
                            restricted
                          
                          
                            >
                          
                          
                            <
                          
                          
                            valueSetDefinition
                          
                          
                            >
                          
                          
                            <
                          
                          
                            sorted
                          
                          
                            >
                          
                          true
                          
                            </
                          
                          
                            sorted
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          AAA
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          AAA
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          BBB
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          BBB
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          CCC
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          CCC
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          DDD
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          DDD
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          EEE
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          EEE
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          FFF
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          FFF
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            value
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          GGG
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            default
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            default
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          GGG
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            </
                          
                          
                            value
                          
                          
                            >
                          
                          
                            </
                          
                          
                            valueSetDefinition
                          
                          
                            >
                          
                          
                            </
                          
                          
                            valueSet
                          
                          
                            >
                          
                          
                            </
                          
                          
                            CustomField
                          
                          
                            >
                          
                        

针对Code_By_Global_List__c,此字段用于选择指定的picklist value set.

                          
                            <?
                          
                          
                            xml version="1.0" encoding="UTF-8"
                          
                          
                            ?>
                          
                          
                            <
                          
                          
                            CustomField 
                          
                          
                            xmlns
                          
                          
                            ="http://soap.sforce.com/2006/04/metadata"
                          
                          
                            >
                          
                          
                            <
                          
                          
                            fullName
                          
                          
                            >
                          
                          Code_By_Global_List__c
                          
                            </
                          
                          
                            fullName
                          
                          
                            >
                          
                          
                            <
                          
                          
                            externalId
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            externalId
                          
                          
                            >
                          
                          
                            <
                          
                          
                            label
                          
                          
                            >
                          
                          Code By Global List
                          
                            </
                          
                          
                            label
                          
                          
                            >
                          
                          
                            <
                          
                          
                            required
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            required
                          
                          
                            >
                          
                          
                            <
                          
                          
                            trackFeedHistory
                          
                          
                            >
                          
                          false
                          
                            </
                          
                          
                            trackFeedHistory
                          
                          
                            >
                          
                          
                            <
                          
                          
                            type
                          
                          
                            >
                          
                          Picklist
                          
                            </
                          
                          
                            type
                          
                          
                            >
                          
                          
                            <
                          
                          
                            valueSet
                          
                          
                            >
                          
                          
                            <
                          
                          
                            restricted
                          
                          
                            >
                          
                          true
                          
                            </
                          
                          
                            restricted
                          
                          
                            >
                          
                          
                            <
                          
                          
                            valueSetName
                          
                          
                            >
                          
                          Code
                          
                            </
                          
                          
                            valueSetName
                          
                          
                            >
                          
                          
                            </
                          
                          
                            valueSet
                          
                          
                            >
                          
                          
                            </
                          
                          
                            CustomField
                          
                          
                            >
                          
                        

Picklist Value Set的好处是一个地方维护,其他地方引用就好,维护方便,并且如果针对这个 picklist value有变更,只需要改动一个地方,其他的便会自动的使用最新的版本的值.

坏处往往也来源于好处,因为绑定的太狠,所以当最开始的设计满足了 picklist value set的需求,picklist字段都绑定了同样的picklist value set,后续如果有其他的需要要求有一些新增一个字段值,有一些不新增的时候,便带来了特别大的痛苦(不要以为是小概率事件,随着时间推移,需求增多,这种往往是会发生的,除非设计人员最开始就会告知有此种风险)。比如现在需要新增一个 III的值,有一些字段需要,有一些不需要,这种就很难处理.

一旦发生了这种情况,两种解决方案.

1. 删除原有字段,新建字段(需要先注释掉所有的字段的引用)。这种解决方案在部署的时候同样痛苦,因为无论是change set还是 ant方式都无法直接部署上去,会报错:Error: Cannot set picklist values when a global picklist is referenced on the field 。

参考:https://success.salesforce.com/issues_view?id=a1p3A0000008g7wQAA  (类似错误) 。

只能先将生产或者其他环境的删除,然后在做部署。除此以外,当删除操作以后,还会影响以前报表(如果有报表使用了此字段,删除再重新创建,原有报表内容不会自动的追加回来) 。

2. 需要保证使用 global picklist value set的字段所在的表拥有 record type. 当 picklist value set中新建 value时,下方会选择是否将新加的值默认给引用到 picklist value set的表的所有 record type,可以先将它反选,然后对于需要的字段,进行配置即可。这个也需要前提条件,就是保证表有record type.

总结: 使用与否都是双刃剑,当时满足的需求,随着后续的变更可能改修成本更高,所以使用以前想好场景,想好后续如果扩展所需要的解决方案。针对 global picklist value set的使用,个人建议还是当前表有 record type情况下使用,否则后续容易出现上述类型的潜在风险,并且后续的改动成本以及部署成本会增加。篇中有错误欢迎指出,有不懂欢迎留言.

最后此篇关于salesforce零基础学习(一百二十六)PicklistValueSet优缺点和使用探讨的文章就讲到这里了,如果你想了解更多关于salesforce零基础学习(一百二十六)PicklistValueSet优缺点和使用探讨的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com