如何大規模地更新各 profile 對於某個 object 的 record type 的存取權限 How to mass update record type visibility for every profile?
情境說明 之前有一篇談到 如何快速用 SOQL 撈出哪些 Profile / Permission Set 有權限對某特定 Object 做 Create/Read/Update/Delete 那篇的主題是針對 object record的 CRUD 在討論。但今天我們有另一個不同的面向要處理:如何大規模地查看或更新各 profile 對於某個 object 的 record type 的存取權限。 這又是一個獨立的設定了。不是 record 層級的設定,也不是 Field-Level Security 的設定。是 Record Type 的設定。 若只是要更動一兩個 profile 的 record type access permission 倒也不難,網頁上滑鼠點一點即可。但如果今天我們需要大模模更動呢? 例如我們有某一個既有的Opportunity Record Type,想要一次開給所有 Profile 都能有存取權限。或是反過來,想要讓僅一兩個 Profile 擁有存取權限,其它通通都不準看到。 難道我們要一個個點進每一個 Profile 去慢慢檢查、慢慢設定嗎? 此處提供一個沒那麼辛苦的解法。 解法概念 用 SFDX 下載 Profile and Record Type 的 XML 檔 用 Visual Studio Code 尋找、大量取代 Deploy 回 Salesforce 解法細節 第0步,把Visual Studio Code 和 SFDX 環境設定好。 用 SFDX 下載 Profile and Record Type 的 XML 檔 準備同時包含 Profile 和 RecordType的 XML package.xml <? xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?> < Package xmlns = "http://soap.sforce.com/2006/04/metadata" > < types > < members > * </ members > ...