發表文章

目前顯示的是有「profile」標籤的文章

如何大規模地更新各 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 > ...

如何快速用 SOQL 撈出哪些 Profile / Permission Set 有權限對某特定 Object 做 Create/Read/Update/Delete

案例情境 想找出哪些 Profile / Permission Set 有權限在 TSN__c  這個 object create record. 操作步驟 步驟一 SELECT Parent.label, PermissionsCreate,SobjectType  FROM ObjectPermissions  WHERE SobjectType = 'TSN__c' AND PermissionsCreate = true order by Parent.label 補充說明: ParentId這一欄存的為 0PS 開頭的 Id,可以代表對應的 Profile 或 Permission Set。 若對應的是 Permission Set,則SELECT Parent.Label 可以直接顯示出該 Permission Set 的名稱。 若對應的是 Profile,則 Parent.Label 欄位會顯示出該 Profile 的 Id (00e開頭的Id)。 步驟二 拿著步驟一得到的 Profile Id,再去進行二次 Query: SELECT Id, Name  FROM Profile  WHERE Id IN ('00e0B000000FXXXXXX', '00e0B000000FYYYYYY', '00e4T000000MZZZZZZ') 步驟三 (optional) 若需要進一步查看這些 Profile / Permission 下有哪些個體 User,則可再 query User object 或 PermissionSetAssignment object。

如何抓取Profile下的Login IP Ranges? How to retrieve Login IP Ranges of Profile via API?

圖片
 #背景說明 Salesforce 可以根據不同的 Profile 來設定不同的 IP 允許範圍白名單。如果 user 從白名單以外的地方登入,就會被擋下來。 那我們除了可以從 UI 點進去看 Login IP Ranges 之外,有沒有其它方式可以大量地抓取/修改/上傳 Profile 的 Login IP Ranges 呢? #相關解釋 這些 IP Ranges 不是 data,而是 metadata。所以諸如 SOQL 或是 Data Loader 之流,是抓不到這些資料的。 值得注意的是,在 Visual Studio Code 裡面的Org Browser 也找不到這款 metadata。 #解法 使用 SFDX command: sfdx force:source:retrieve -m "Profile:Salesforce Integration Profile" 即可在 force-app\main\default\profiles\ 這個路徑下找到此 Profile 的 XML 檔。 其中即列出了此 Profile 下所有的 Login IP Ranges。 其餘如法泡製即可。

為什麼顯示不出 New/Edit/Delete Button?

圖片
 症狀描述 明明已經將button拉到page layout上了,也將Page Layout指派給正確的Profile了,但是user還是看不到New/Edit/Delete的button。 在Record Page看不到button,在List View的地方也找不到。 可能的原因 在Profile只給了Read的權限,沒開其它權限。 解法 到Profile設定的Standard Object Permissions/Custom Object Permissions,把Create/Edit/Delete的權限勾起來即可。          

如何善用Firefox的使用者設定檔 區隔不同的Salesfroce環境

圖片
 一圖勝過萬語: 再附個參考說明: https://evencu.blogspot.com/2017/05/firefox.html