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 等标签表示。

  • 相关阅读:
    20200116
    20200115
    20191214数组之四:数字不相同的完全平方数(关于数位上数字判断与sprintf)
    结构体与C++sort()函数的用法
    字符串常用函数
    sscanf用法
    螺旋矩阵
    模m的k次根
    梅森素数与完全数
    bit_reverse_swap
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/salesforce_package_xml_file.html
Copyright © 2011-2022 走看看