zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Salesforce 选择list项目创建重复值的解决方法-Translate

2023-03-20 14:59:40 时间

现在做对日项目,有时遇到选择list项目需要设重复值的情况,一般情况下直接增加重复值会发生错误而无法设定,这里利用翻译的方法可以解决这样的问题,例如,我现在自定义一个选择list项目language,它的值分别是01:英语,02:日语,03:中国语,具体项目如下。

这里在PageLayout上正常表示三个值,分别是01:英语,02:日语,03:中国语

在已经存在【02:日语】的基础上,增加【04:日语】的话,会发生【Duplicate Values】的错误。

解放方法:

1.为避免重复,先直接增加【04:日语_04】的API Name和值。

2.点击设定找到翻译并启用

User Interfate→TranslationWorkbench→Translate

3.如下图,找到对应的项目,把【日本語_04】翻译成【日本語】

4.验证结果,先把语言切换成日语。

5.如下,这个选择list项目的值就会有两个【日本語】

6.在VsCode中,执行如下命令,可以把资源取下来。

sfdx force:source:retrieve -m CustomObject:Opportunity
sfdx force:source:retrieve -m CustomObjectTranslation:Opportunity-ja
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Language__c</fullName>
    <externalId>false</externalId>
    <label>Language</label>
    <required>false</required>
    <trackFeedHistory>false</trackFeedHistory>
    <trackTrending>false</trackTrending>
    <type>Picklist</type>
    <valueSet>
        <restricted>true</restricted>
        <valueSetDefinition>
            <sorted>false</sorted>
            <value>
                <fullName>01</fullName>
                <default>false</default>
                <label>英語</label>
            </value>
            <value>
                <fullName>02</fullName>
                <default>false</default>
                <label>日本語</label>
            </value>
            <value>
                <fullName>03</fullName>
                <default>false</default>
                <label>中国語</label>
            </value>
            <value>
                <fullName>04</fullName>
                <default>false</default>
                <label>日本語_04</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>

Language__c.fieldTranslation-meta.xml

<?xml version="1.0" encoding="UTF-8"?>
<CustomFieldTranslation xmlns="http://soap.sforce.com/2006/04/metadata">
    <label><!-- Language --></label>
    <name>Language__c</name>
    <picklistValues>
        <masterLabel>日本語_04</masterLabel>
        <translation>日本語</translation>
    </picklistValues>
</CustomFieldTranslation>