Вставьте DocuSign с уведомлением по электронной почте, отправленным с использованием триггера APEX - PullRequest
0 голосов
/ 29 апреля 2019

В настоящее время у нас есть процесс утверждения и когда Предложение в качестве приложения к клиентам, когда Утверждение предложения.

Триггер APEX похож на

 trigger approvalQuote    on Quote(after update){
  set<Id> quoteIdsApproved= new set<Id>();
  set<Id> quoteIdsSOWupdates= new set<Id>();
  for(Quote q: trigger.new){
    quoteIdsSOWupdates.add(q.Id);
    system.debug('++++++++++++++2');
    if(q.Status!=trigger.oldMap.get(q.Id).Status && q.Status=='Approved'){
        quoteIdsApproved.add(q.Id);
    }
   }
   if(quoteIdsApproved.size()==1)
    approvalQuote_Handler.sendEmailAlert(quoteIdsApproved);
   approvalQuote_Handler.UpdateSOWStage(quoteIdsSOWupdates);
   }

А в обработчике у нас

public class approvalQuote_Handler{
    @future

    public static void sendEmailAlert(set<id> quoteIds){
        List<Quote> QuoteLst=[Select Id,Contact.Id,Contact.Email, OwnerId From Quote  where id IN :quoteIds];
        string emailId=QuoteLst[0].Contact.Email;
        Id contactId= QuoteLst[0].ContactId;
        for(Id quoteId: quoteIds){
            List<Attachment> attachments = [SELECT Id,Name, Body, ContentType FROM Attachment WHERE ParentId = :quoteId ORDER BY CreatedDate DESC LIMIT 1];
            List<Messaging.EmailFileAttachment> email_attachments = new List<Messaging.EmailFileAttachment>();
            for(Attachment att : attachments){
                Messaging.EmailFileAttachment email_att = new Messaging.EmailFileAttachment();
                email_att.setBody(att.Body);
                email_att.setContentType(att.ContentType);
                email_att.setFileName(att.Name);
                email_att.setinline(false);
                email_attachments.add(email_att);
            }
            //generate email here like 
            Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            Id template_id =  [SELECT id, name 
                               FROM EmailTemplate 
                               WHERE developername =  'Quote_Template'].Id;
            string [] toAddresses=new string[1];
            toAddresses[0]=emailId;
            email.setToAddresses(toAddresses);  // Quote contact Email Id
            //email.setCcAddresses(to_cc_receivers);    //list of email addresses
            email.setTargetObjectId(contactId); //Id of Lead, User or Contact if that is target object. not required
            email.setWhatId(quoteId);           //Id of object that should do field merge
            email.settemplateid(template_id);
            email.setFileAttachments(email_attachments);
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
        }
    }
}

Я новый Docusign, и я не уверен, как я могу встроить часть Docusign в sendEmailAlert (), чтобы вложение позволяло пользователям подписать его.

...