Skip to main content
Xiaoyue Wang ha fatto una domanda in #Apex
Hi,

    I'm planning to apply a trigger on the ContentDocument Object which aims at inserting a new record into a customized object (BoxAttachmentMapping__c) every time a ContentDocument is uploaded to another customized object (Deposit__c). The code is as below. However, the part of code in the for(ContentDocumentLink cl : dcl) loop are not running every time we run the test class. Could anyone help me review the code and let me know if there are anything errors in the code? Any assistance would be much appreciated! 

trigger TriggerContentDocV2 on ContentDocument (after insert) {

    string attachmentid;

    string depositid;

    string depositName;

    string contentName;

    for(ContentDocument doc: trigger.New){

  

        attachmentid = doc.Id;

        depositid = doc.ParentId;

        contentName = doc.Title;

 

        list <ContentDocumentLink> dcl=  [SELECT ContentDocumentId, LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId=:doc.Id];

        

        for(ContentDocumentLink cl : dcl) {

            Deposit__c dp0 = [select Id,Name from Deposit__c where id = :cl.LinkedEntityId];   

            depositName = dp0.Name;

            depositid=dp0.Id

            

            BoxAttachmentMapping__c bam0 = new BoxAttachmentMapping__c();

            bam0.AttachmentID__c = doc.Id ;

            bam0.ParentID__c = depositid;

            bam0.DepositName__c= depositName ; 

            bam0.Attach_Content_Name__c = contentName;

            bam0.AttachmentType__c ='ContentDocument';

            insert bam0;   

        }

}

}

       
6 risposte
  1. 28 feb 2022, 18:47
    Try with below code.

     

    trigger TriggerContentDocV2 on ContentVesrsion (after insert) {

    set<id> ContentDocumentIds = new set<id>();

    set<id> parentids = new set<id>();

    List<BoxAttachmentMapping__c> BoxAttachment = new List<BoxAttachmentMapping__c> ();

    for(ContentVesrsion doc: trigger.New){

    ContentDocumentIds.add(attachmentid = doc.ContentDocumentId);

    }

    list <ContentDocumentLink> dcl= [SELECT ContentDocumentId, LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId=:doc.ContentDocumentId];

    for (ContentDocumentLink dd:dcl ){

    parentids.add(dd.LinkedEntityId);

    }

    List<Deposit__c> dp0 = [select Id,Name from Deposit__c where id =:parentids];

    for(ContentVesrsion doc: trigger.New){

    BoxAttachmentMapping__c bam0 = new BoxAttachmentMapping__c();

    bam0.AttachmentID__c = doc.ContentDocumentId ;

    bam0.ParentID__c = dp0[0].id;

    bam0.DepositName__c= dp0[0].Name ;

    bam0.Attach_Content_Name__c = doc.title;

    bam0.AttachmentType__c =doc.FileType;

    BoxAttachment.add(bam0);

    }

    insert BoxAttachment;

    }

     
0/9000