Skip to main content

Notifications

Move Notes and Attachments from One Entity to another

Implementation Steps:

 

Consider when ever I Qualify a Lead to Contact, I need to Move the Respective Lead(Notes/Attachment) from Lead to Contact.

 

Let's see how can we do that.

 

Create a Plugin 

 

 

string getNotes = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
 <entity name='annotation'>
 <all-attributes />
 <order attribute='subject' descending='false' />
 <link-entity name='lead' from='leadid' to='objectid' link-type='inner' alias='aa'>
 <filter type='and'>
 <condition attribute='leadid' operator='eq' value='{objectid}' />
 </filter>
 </link-entity>
 </entity>
</fetch>";

 getNotes = getNotes.Replace("{objectid}", "LEADGUID");
 EntityCollection collectNotes = service.RetrieveMultiple(new FetchExpression(getNotes));

 foreach (var loopColelctNotes in collectNotes.Entities)
 {
 Entity _annotation = new Entity("annotation");
 _annotation.Attributes["objectid"] = new EntityReference("contact", getContactDetails.Id);
 _annotation.Attributes["objecttypecode"] = "contact";
 if (loopColelctNotes.Attributes.Contains("subject"))
 {
 _annotation.Attributes["subject"] = loopColelctNotes.Attributes["subject"];
 }

 if (loopColelctNotes.Attributes.Contains("documentbody"))
 {
 _annotation.Attributes["documentbody"] = loopColelctNotes.Attributes["documentbody"];
 }

 if (loopColelctNotes.Attributes.Contains("mimetype"))
 {
 _annotation.Attributes["mimetype"] = loopColelctNotes.Attributes["mimetype"];
 }

 if (loopColelctNotes.Attributes.Contains("notetext"))
 {
 _annotation.Attributes["notetext"] = loopColelctNotes.Attributes["notetext"];
 }

 if (loopColelctNotes.Attributes.Contains("filename"))
 {
 _annotation.Attributes["filename"] = loopColelctNotes.Attributes["filename"];
 }

 service.Create(_annotation);

 }

 

 

Trigger the above code on Create of an Entity in Async Operation.

 

 

Comments

*This post is locked for comments