zoukankan      html  css  js  c++  java
  • Salesforce 的 package.xml 文件

    package.xml文件

    在部署元数据(Metadata)的时候,package.xml是很关键的一个文件。此文件中定义了一个XML格式的列表,其中包含了各个元数据组件的定义。

    Metadata API中的deploy()和retrieve()函数可以用来操作其中的内容。

    组件

    每个组件都是一个元数据类型的一个实例,比如:“CustomObject”是一种元数据类型,代表了自定义对象,而名为“ExampleObject__c”的自定义对象是此元数据类型的一个实例。

    package.xml文件组成元素

    一个package.xml文件的范例如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>MyCustomObject__c</members>
            <name>CustomObject</name>
        </types>
        <types>
            <members>*</members>
            <name>CustomTab</name>
        </types>
        <types>
            <members>Standard</members>
            <name>Profile</name>
        </types>
        <version>40.0</version>
    </Package>
    

    package.xml文件主要包括以下几个元素:

    • fullName:定义了此package的名字,如果没有,则表示其中包含的内容是未管理的包

    • types:定义了元数据的类型和其包含的实例。一个package.xml文件可以包含多个 types 标签。types 标签是此文件的核心部分

    • name:每个 types 标签包含一个,定义了此元数据类型的名字

    • members:包含在 types 标签中,定义了组件的名字,可以有很多个,也可以直接用通配符(*符号)来代表所有的组件

    • version:定义了API的版本

    package.xml文件示例

    标准对象(Standard Objects)

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>Account</members>
            <name>CustomObject</name>
        </types>
    <version>40.0</version>
    </Package>
    

    在上面的示例中,包含了标准对象Account的定义。需要注意的是:

    • 标准对象所在的 types 标签中的 name 标签的值是“CustomObject”
    • 对于标准对象,在 members 标签中必须列出名字,不能用通配符(*符号)代替

    自定义对象(Custom Objects)

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>*</members>
            <name>CustomObject</name>
        </types>
    <version>40.0</version>
    </Package>
    

    在上面的示例中,在 members 标签中用通配符(*符号)表示包括所有的自定义对象(不包括任何标准对象)。

    标准列表值(Standard Picklist Fields)

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>Industry</members>
            <name>StandardValueSet</name>
        </types>
    <version>40.0</version>
    </Package>
    

    对于版本是38.0及以后的API,当表示标准列表值的时候,可以直接将 types 标签中的 name 标签值设定为“StandardValueSet”,而不需要声明它属于哪个对象。

    注意,members 标签中的值是区分大小写的。

    对于版本是37.0及更早的API,types 标签中不能用这种表示方法,而是像下面的例子那样:

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>Account.Industry</members>
            <name>CustomField</name>
        </types>
    <version>37.0</version>
    </Package>
    

    这里,members 标签中的值是不区分大小写的。

    字段(Fields)

    <?xml version="1.0" encoding="UTF-8"?>
    <Package xmlns="http://soap.sforce.com/2006/04/metadata">
        <types>
            <members>MyCustomObject__c.MyCustomField__c</members>
            <name>CustomField</name>
        </types>
        <types>
            <members>Account.SLA__c</members>
            <members>Account.Phone</members>
            <name>CustomField</name>
        </types>
    <version>40.0</version>
    </Package>
    

    在上面的示例中,两个 types 标签分别包含了标准对象的字段和自定义对象的字段。注意,name 标签中的值都是“CustomField”。

    对象的权限

    <objectPermissions>
        <allowCreate>true</allowCreate>
        <allowDelete>true</allowDelete>
        <allowEdit>true</allowEdit>
        <allowRead>true</allowRead>
        <viewAllRecords>false</viewAllRecords>
        <modifyAllRecords>false</modifyAllRecords>
        <object>MyCustomObject__c</object>
    </objectPermissions>
    

    当需要对某一个对象设定权限时,使用 objectPermissions 标签,在其中用 allowCreate 等标签定义各种权限。

    其他的还有字段的权限等,用 fieldPermissions 等标签表示。

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/salesforce_package_xml_file.html
Copyright © 2011-2022 走看看