Loading
Dele midlertidig tilgang til poster i Avanserte godkjenninger

Dele midlertidig tilgang til poster i Avanserte godkjenninger

Del midlertidig tilgang til relaterte poster med godkjennerne ved å konfigurere utløsere. Når godkjenningshandlingen er fullført, bruker du en utløser til å trekke tilbake posttilgangen.

Når du sender en post til godkjenning, må godkjenneren ha tilgang til postens relaterte objekt for å utføre handlinger på godkjenningsforespørselen. Hvis objektets interne organisasjonsomfattende standardinnstilling for deling er Privat, kan du bruke en utløser til å opprette et delingsobjekt som gir tilgang til godkjenneren. Når posten er godkjent, kan du trekke tilbake posttilgangen ved å bruke en utløser til å slette delingsposten.

  1. Opprett en Apex for å dele tilgang til en posts relaterte objekt. Under Sikkerhet velger du profilen til godkjenneren. Se Definere Apex-utløsere.
    Tips
    Tips

    Hvis du deler tilgang til et tilpasset objekt, kan du opprette en Apex-delingsårsak og inkludere den i utløseren. En Apex begrenser posttilgangen til ditt spesifikke bruksområde.

  2. Opprett en Apex for å slette delingsposten og oppheve posttilgangen etter at godkjenningsforespørselen er fullført. Under Sikkerhet velger du profilen til godkjenneren.

    Du kan tilpasse kodeeksempelsnutten slik at den passer til ditt spesifikke bruksområde.

    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
    }
    }
    }
    }
    
 
Laster
Salesforce Help | Article