Loading
Del midlertidig adgang til registreringer i avancerede godkendelser

Del midlertidig adgang til registreringer i avancerede godkendelser

Del midlertidig adgang til relaterede registreringer med dine godkendere ved at opsætte udløsere. Når godkendelseshandlingen er fuldført, skal du bruge en udløser til at tilbagekalde registreringsadgangen.

Når du indsender en registrering til godkendelse, skal godkenderen have adgang til registreringens relaterede objekt for at udføre handlinger på godkendelsesanmodningen. Hvis dit objekts interne delingsstandard for hele organisationen er Privat, kan du bruge en udløser til at oprette et delingsobjekt, der tildeler adgang til godkenderen. Når registreringen er godkendt, kan du trække registreringsadgangen tilbage ved at bruge en udløser til at slette delingsregistreringen.

  1. Opret en Apex for at dele adgang til en registrerings relaterede objekt. Under Sikkerhed skal du vælge profilen for din godkender. Se Definer Apex-udløsere.
    Tip
    Tip

    Hvis du deler adgang til et tilpasset objekt, kan du oprette en Apex-delingsårsag og inkludere den i udløseren. En Apex begrænser registreringsadgangen til din specifikke anvendelsessituation.

  2. Opret en Apex for at slette delingsregistreringen og tilbagekalde registreringsadgangen, når godkendelsesanmodningen er fuldført. Under Sikkerhed skal du vælge profilen for din godkender.

    Du kan tilpasse eksempelkodestykket, så det passer til din specifikke anvendelsessituation.

    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
    }
    }
    }
    }
    
 
Indlæser
Salesforce Help | Article