platform-permission-set-generate

platform-permission-set-generate

熱門

產生正確且可部署的 Salesforce 權限集中繼資料(PermissionSet XML),包含物件、欄位、使用者和應用程式權限。在建立或編輯權限集中繼資料、物件權限、欄位層級安全(FLS)、頁籤可見性或部署權限集時,請使用此技能。

774星標
282分支
更新於 2026/7/24
SKILL.md
唯讀
名稱
platform-permission-set-generate
描述

產生正確且可部署的 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 格式
  • 當使用者需要編輯權限時,請將 readable 和 editable 都設為 true;editable 隱含 readable
  • 如果所有欄位都應可見,也可以改為啟用 "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:設定 Agent 存取(選用)

為指派至此權限集的使用者啟用 Agentforce Employee Agents 的存取權:

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

欄位需求:

  • agentName(必填):員工 Agent 的開發人員名稱
  • enabled(必填):設為 true 以授予存取權,設為 false 以拒絕

重要事項:

  • Agent 名稱必須與現有的 Agentforce Employee Agent 開發人員名稱相符

驗證檢查清單

部署前,請確認:

  • [ ] 已設定 fullName、label、description
  • [ ] 權限遵循最小權限原則
  • [ ] <fieldPermissions> 中沒有必填欄位
  • [ ] 沒有重複的權限
  • [ ] 沒有冗長的註解

導致部署失敗的原因

  • 必填欄位的欄位權限: <fieldPermissions> 中的任何必填欄位都會導致部署失敗。必填欄位不能有 FLS;請完全省略。務必從物件/欄位中繼資料確認欄位存在且非必填,切勿假設。
  • 錯誤的 API 名稱: 使用錯誤的名稱或缺少後綴(例如自訂物件、欄位、頁籤缺少 __c)會導致失敗。

部署

使用 Salesforce CLI 部署