Loading
Tietueiden väliaikaisten käyttöoikeuksien jakaminen edistyneissä hyväksynnöissä

Tietueiden väliaikaisten käyttöoikeuksien jakaminen edistyneissä hyväksynnöissä

Jaa asiaan liittyvien tietueiden väliaikainen käyttöoikeus hyväksyjillesi määrittämällä käynnistimiä. Kun hyväksymistoiminto on suoritettu, käytä käynnistintä poistaaksesi tietueen käyttöoikeuden.

Kun lähetät tietueen hyväksyttäväksi, hyväksyjällä täytyy olla tietueeseen liittyvän objektin käyttöoikeus suorittaakseen hyväksymispyyntöön liittyviä toimintoja. Jos objektisi sisäisen organisaationlaajuinen oletusarvoinen jakoasetus on Yksityinen, voit käyttää käynnistintä luodaksesi jako-objektin, joka myöntää käyttöoikeuden hyväksyjälle. Kun tietue on hyväksytty, voit kumota tietueen käyttöoikeuden käyttämällä käynnistintä poistaaksesi tietueen.

  1. Luo Apex jakaaksesi käyttöoikeuden tietueeseen liittyvään objektiin. Valitse Suojaus-osiosta hyväksyjasi profiili. Lisätietoja on kohdassa Apex-käynnistimien määrittäminen.
    Vihje
    Vihje

    Jos jaat mukautetun objektin käyttöoikeuksia, voit luoda Apex-jaon syyn ja lisätä sen käynnistimeen. Apex syy rajoittaa tietueen käyttöoikeuksia tiettyyn käyttötarkoitukseesi.

  2. Luo Apex poistaaksesi jakotietueen ja kumotaksesi tietueen käyttöoikeuden, kun hyväksymispyyntö on suoritettu. Valitse Suojaus-osiosta hyväksyjasi profiili.

    Voit mukauttaa esimerkkikoodinpätkää oman käyttötarkoituksesi mukaisesti.

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