+ Start a Discussion
EdCodeEdCode 

apex trigger - delete File - ContentDocumentLink

Hi Stars,

I am trying to implement an apex trigger the detects if a File is deleted (so as to, in another apex class, verify if the Parent Object Case has any remaining children Files attached to it or not and consequently edit a boolean field on Case).

I got the solution to work smoothly when the File is added (trigger.isInsert) but that trigger does not work when having to spot/detect when a file is deleted.

I am doing manual tests with Classic.

Salesforce's article (https://help.salesforce.com/articleView?id=000312746&type=1&mode=1) states that, for a trigger to be able to detect when a File is deleted from Classic, the trigger must be on the object ContentDocumentLink (not ContentDocument).

However,  in spite of the above statement on Salesforce's article, when manually deleting a File (attached to a Case) from the Service Console, the trigger on ContentDocumentLink is not being triggered (I can see that with a System.debut method).

Here is my code:
 
trigger ContentDocumentLinkTrigger on ContentDocumentLink (after insert, after delete) {
    System.debug('FROM ContentDocumentLinkTrigger: Entered the trigger');
    Set<Id> ContentDocumentLinkIds = new Set<Id>();
    Set<Id> parentCasesIds = new Set<Id>();
    
    //---> INSERTING FILE
    if(trigger.isInsert || trigger.isUndelete){
        System.debug('FROM ContentDocumentLinkTrigger - triggerNew if isINSERT or isUNDELETE');
        if(trigger.isAfter){
            System.debug('FROM ContentDocumentLinkTrigger - triggerNew if isAFTER');
            for(ContentDocumentLink cdl : trigger.new){
                ContentDocumentLinkIds.add(cdl.Id);
            }
        }
        CaseChildren.retrieveCaseFromContentDocumentLinkTrue(ContentDocumentLinkIds);
    }
    
    //---> DELETING FILE
    if(trigger.isDelete){
        System.debug('FROM ContentDocumentTrigger - Entered isDelete');
        if(trigger.isAfter){
            System.debug('FROM ContentDocumentTrigger - Entered isAfter');
        }
    }
}
Could you possibly help me find out WHY is this trigger not triggering when deleting a File (associated to a Parent Case) from the Service Console in Classic?

Thank you very much.