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部署






