【问题标题】:docusign update parent field on completedocusign 在完成时更新父字段
【发布时间】:2015-05-20 22:09:15
【问题描述】:

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

  1. 用户登录到 sfdc
    1. 用户转到对象 A 并单击自定义按钮(与文档中的完全相同)选择模板并发送给用户 X。
    2. 接收方 X 将签名并将其发回。 我的问题是 - 在第 3 步之后,是否有任何方法可以更新对象 A 中的选项列表字段,指示文档已签名和接收。

我不想触发文档状态,当我尝试流程构建器时,看不到父选项列表字段。

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

谢谢

韩国

【问题讨论】:

    标签: salesforce docusignapi apex


    【解决方案1】:

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

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

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

    1. 工作流没有帮助,因为工作流无法更新相关(通过查找字段)对象。
    2. 由于同样的问题,流程构建器也无济于事(无法更新相关对象)。
    3. 公式字段没有帮助,因为 Salesforce 对象的 DocuSign 状态是一对多关系。

    唯一正确的解决方案是触发器(非常简单,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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多