共用進階批准中記錄的暫存取權
透過設定觸發,與您的批准者共用相關記錄的暫時存取權。批准動作完成後,請使用觸發來撤銷記錄存取權。
當您提交記錄以待批准時,批准者必須擁有記錄相關物件的存取權,才能對批准要求執行動作。如果物件的內部組織範圍共用預設值為「專用」,您可以使用觸發來建立共用物件,以將存取權授與批准者。批准記錄後,您可以使用觸發來刪除共用記錄,以撤銷記錄存取權。
-
建立 Apex 觸發以共用記錄相關物件的存取權。在「安全性」下,選取您批准者的設定檔。請參閱定義 Apex 觸發。

-
建立 Apex 觸發以刪除共用記錄,並在批准要求完成後撤銷記錄存取權。在「安全性」下,選取您批准者的設定檔。
您可以自訂範例程式碼片段以符合您的特定使用個案。
trigger AWIUpdate on ApprovalWorkItem(after update) { List<ApprovalWorkItem> awiList = new List<ApprovalWorkItem>(); // Get the related opportunities for the accounts in this trigger awiList = [SELECT Id, RelatedRecordId, AssignedToId FROM ApprovalWorkItem WHERE Id IN :Trigger.new]; for (ApprovalWorkItem awi : awiList) { // Use the related record id, to delete the share record created for the user Id relatedRecordId = awi.RelatedRecordId; Id assignedToId = awi.AssignedToId; SObjectType relatedRecordType = relatedRecordId.getSObjectType(); if (relatedRecordType.getDescribe().isCustom()) { Map<String, Schema.SObjectType> tokens = Schema.getGlobalDescribe(); String relatedRecordShareName = relatedRecordType.getDescribe().getName().removeEnd('__c') + '__Share'; if(tokens.containsKey(relatedRecordShareName)) { // Share object exists SObject[] customShare = Database.query('SELECT Id FROM ' + relatedRecordShareName + ' WHERE ' + ' RowCause = \'AdvancedApprovalTriggerShareReason__c\' ' + ' AND ParentId = :relatedRecordId' + ' AND UserOrGroupId = :assignedToId'); } else { // OWD is Public Read Write } } } }
此文章是否解決您的問題?
請讓我們知道,以便我們改進!
