platform-permission-set-generate

platform-permission-set-generate

热门

生成正确、可部署的Salesforce权限集元数据(PermissionSet XML),包含对象、字段、用户和应用权限。在创建或编辑权限集元数据、对象权限、字段级安全性(FLS)、标签页可见性或部署权限集时,使用此技能。

774Star
282Fork
更新于 2026/7/24
SKILL.md
readonly只读
name
platform-permission-set-generate
description

生成正确、可部署的Salesforce权限集元数据(PermissionSet XML),包含对象、字段、用户和应用权限。在创建或编辑权限集元数据、对象权限、字段级安全性(FLS)、标签页可见性或部署权限集时,使用此技能。

何时使用此技能

在生成或编辑权限集元数据,或授予对象、字段、用户和应用权限时使用。

步骤1:定义核心属性

首先定义所需的权限集属性:

<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>YourPermissionSetName</fullName>
    <label>Display Name for Administrators</label>
    <description>Clear description of purpose and intended audience</description>
</PermissionSet>

命名约定:

  • 使用描述性的API名称(例如,Sales_Manager_Access

步骤2:配置对象权限

为标准对象和自定义对象添加CRUD权限:

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

步骤3:设置字段级安全性

为敏感或自定义字段定义字段权限:

<fieldPermissions>
    <editable>true</editable>
    <readable>true</readable>
    <field>Account.SSN__c</field>
</fieldPermissions>

重要提示:

  • 必填字段绝不能出现在字段权限列表中。平台不允许对必填字段授予字段级安全性,否则会导致部署失败。
  • 在添加任何字段之前,请从对象元数据中确认该字段存在且不是必填字段。
  • 当字段的元数据包含 <required>true</required> 时,该字段为必填字段:
  • 公式字段不能设置为可编辑。
  • 主从关系字段在子(明细)对象上是必填字段。
<fields>
    <fullName>FieldName__c</fullName>
    <required>true</required>
</fields>
  • 字段引用使用 ObjectName.FieldName 格式。
  • 当用户需要编辑权限时,将可读和可编辑都设置为true;可编辑隐含可读。
  • 如果所有字段都应可见,也可以启用对象的“viewAllFields”权限。

步骤4:授予用户权限

为功能添加系统级权限:

<userPermissions>
    <enabled>true</enabled>
    <name>ApiEnabled</name>
</userPermissions>
<userPermissions>
    <enabled>true</enabled>
    <name>RunReports</name>
</userPermissions>

常见权限:

  • ApiEnabled:API访问权限
  • ViewSetup:查看设置菜单
  • ManageUsers:用户管理
  • RunReports:报表执行

需要安全审查的权限:

  • ViewAllData:查看所有记录
  • ModifyAllData:编辑所有记录
  • ManageUsers:用户管理

步骤5:配置应用程序和标签页可见性

使应用程序和标签页对用户可见:

<applicationVisibilities>
    <application>Sales_Console</application>
    <visible>true</visible>
</applicationVisibilities>
<tabSettings>
    <tab>CustomTab__c</tab>
    <visibility>Visible</visibility>
</tabSettings>

应用程序可见性选项:

  • <visible> 可以为 true 或 false

标签页可见性选项:

  • Visible:标签页在“所有标签页”页面上可用,并出现在其关联应用程序的可见标签页中。可以自定义。
  • Available:标签页在“所有标签页”页面上可用。个别用户可以自定义其显示,使标签页在任何应用程序中可见。
  • None:不可见

关键 - 标签页命名:

  • 自定义对象标签页:必须包含 __c 后缀(例如,MyCustomObject__c)
  • 标准对象标签页:使用带有“standard-”前缀的对象名称(例如,standard-Account、standard-Contact)
  • 标签页名称与对象的API名称完全匹配

步骤6:添加Apex和Visualforce访问权限(可选)

授予对自定义代码的访问权限:

<classAccesses>
    <apexClass>CustomController</apexClass>
    <enabled>true</enabled>
</classAccesses>
<pageAccesses>
    <apexPage>CustomPage</apexPage>
    <enabled>true</enabled>
</pageAccesses>

步骤7:设置许可证和记录类型设置(可选)

指定许可证要求和记录类型可见性:

<license>Salesforce</license>
<hasActivationRequired>false</hasActivationRequired>
<recordTypeVisibilities>
    <recordType>Account.Business</recordType>
    <visible>true</visible>
    <default>true</default>
</recordTypeVisibilities>

步骤8:设置代理访问权限(可选)

为分配到此权限集的用户启用对Agentforce员工代理的访问权限:

<agentAccesses>
<agentName>Sales_Assistant_Agent</agentName>
<enabled>true</enabled>
</agentAccesses>

字段要求:

  • agentName(必填):员工代理的开发名称
  • enabled(必填):设置为true以授予访问权限,false以拒绝

重要提示:

  • 代理名称必须与现有的Agentforce员工代理开发名称匹配

验证清单

部署前,请验证:

  • [ ] 已设置fullName、label、description
  • [ ] 权限遵循最小权限原则
  • [ ] <fieldPermissions>中没有必填字段
  • [ ] 没有重复权限
  • [ ] 没有冗长的注释

导致部署失败的原因

  • 对必填字段的字段权限: <fieldPermissions>中的任何必填字段都会导致部署失败。必填字段不能有FLS;完全省略它们。始终从对象/字段元数据中确认字段存在且不是必填字段——切勿假设。
  • 不正确的API名称: 使用错误的名称或缺少后缀(例如,自定义对象、字段、标签页缺少__c)会导致失败。

部署

使用Salesforce CLI部署