完成后,docusign更新父字段

时间:2015-05-20 22:09:15

标签: salesforce docusignapi apex

我是docusign与salesforce集成的新手。我正在遵循一个简单的流程

  1. 用户登录sfdc
    1. 用户转到对象A并单击自定义按钮(与文档完全相同)选择模板并发送给用户X.
    2. 接收器X将签名并发回。 我的问题是 - 在第3步之后,有没有办法更新对象A中的选项列表字段,表明文档已签名并已收到。
  2. 我不想对文档状态执行触发操作,当我尝试使用流程构建器时,无法看到父选择列表字段。

    所以,我想知道docusign是否有任何功能可以解决我的问题。

    谢谢

    KR

1 个答案:

答案 0 :(得分:1)

App Exchange上的DocuSign for Salesforce(DfS)应用程序是最终产品(即最终用户产品)。如果它的当前功能集无法满足您的所有业务需求,那么您始终可以进行API集成并使用DocuSign Connect模块。

使用DocuSign Connect,您可以设置一个外部http监听器,在该监听器中发送实时状态/事件更新并进行解析。此时,您可以在Salesforce内部或外部编写您需要执行的任何逻辑。有关DocuSign Connect的更多信息,请参阅此here

否则,如果你想与DfS一起使用,这只能通过触发来完成,因为

  1. 工作流无效,因为工作流无法更新相关(通过查找字段)对象。
  2. 由于同样的问题(无法更新相关对象),进程构建器也无济于事。
  3. 公式字段无济于事,因为DocuSign Status to Salesforce对象为1到多个关系。
  4. 唯一正确的解决方案是触发器(非常简单,10行代码,只需用您的信息替换我的TODO):

    trigger UpdateOpportunityOnEnvelopeCompleted on dsfs__DocuSign_Status__c (after update)
    {
    
        // get a set of all completed docusign statuses with opportunities
        Set<Id> opportunityId = new Set<Id>();
        for(dsfs__DocuSign_Status__c  status : Trigger.new) {
           if (status.dsfs__Opportunity__c != null && status.dsfs__Envelope_Status__c== 'Completed') {  // TODO: Replace dsfs__Opportunity__c with the object you want to update, say dsfs__Contact__c or dsfs__Lead__c
               opportunityId.add(status.dsfs__Opportunity__c);                                                                                     // TODO: Replace dsfs__Opportunity__c with the object you want to update
           }
        }
    
        // retrieve these opportunities
        // TODO: Replace DeliveryInstallationStatus__c with the field you want to update, replace Opportunity to your object name, ex: Contact or Lead
        List<Opportunity> opportunities = [SELECT Id, DeliveryInstallationStatus__c FROM Opportunity WHERE Id IN :opportunityId];
    
        // update these opportunities
        for(Opportunity o : opportunities) {                  // TODO: Replace Opportunity with your object name
            o.DeliveryInstallationStatus__c = 'Completed';    // TODO: Replace DeliveryInstallationStatus__c with the field you want to update , replace 'Completed' with field value you want to set
        }
        update opportunities;
    }