Docusignapi Salesforce的DocuSign-为单个收件人设置触发器

Docusignapi Salesforce的DocuSign-为单个收件人设置触发器,docusignapi,docusignapextoolkit,Docusignapi,Docusignapextoolkit,是否可以在“dsfs\uuuu DocuSign\u Recipient\u Status\uuuu c”对象上创建触发器? 用例: 合同由两人签订a)客户b)销售经理 更新opportunity stage等事件应在客户签字后立即生效,即使信封不完整。我知道我们可以在DocuSign状态对象上触发“已交付”、“已发送”等事件,但收件人级别变量(收件人状态、路由顺序等)仅在收件人状态对象中可用 我最初尝试了两个条件(收件人状态和发送顺序),然后尝试了一个简单的条件来测试收件人状态。触发器将被发布

是否可以在“dsfs\uuuu DocuSign\u Recipient\u Status\uuuu c”对象上创建触发器? 用例: 合同由两人签订a)客户b)销售经理 更新opportunity stage等事件应在客户签字后立即生效,即使信封不完整。我知道我们可以在DocuSign状态对象上触发“已交付”、“已发送”等事件,但收件人级别变量(收件人状态、路由顺序等)仅在收件人状态对象中可用

我最初尝试了两个条件(收件人状态和发送顺序),然后尝试了一个简单的条件来测试收件人状态。触发器将被发布,但不会按预期更改opp阶段-代码如下

trigger ClientSign on dsfs__DocuSign_Recipient_Status__c (after insert, after update) {

try
 {
    system.debug('In trigger');
    dsfs__DocuSign_Recipient_Status__c dssNew = Trigger.new[0];  
    dsfs__DocuSign_Recipient_Status__c dssOld = null; 
    if (!System.Trigger.isInsert) dssOld = Trigger.old[0];
    if (System.Trigger.isInsert || dssOld.dsfs__Recipient_Status__c != dssNew.dsfs__Recipient_Status__c)
    {
        if (dssNew.dsfs__DocuSign_Routing_Order__c == 1 && dssNew.dsfs__Recipient_Status__c == 'Completed')
        {
           Opportunity o = [select StageName from Opportunity where id=:dssNew.Opportunity__c];
           if (o != null)
           {
             o.StageName = 'Value Proposition';
             upsert o;
           }
        }
    }
}
catch (Exception ex)
{}
}

是触发器在dsfs\uuuu DocuSign\u Recipient\u Status\uuuu c对象上工作。我认为你的问题在于机会。这不是dsfs\uuuu DocuSign\u Recipient\u Status\uuuu c对象上的默认字段,因此肯定有问题。我根据你的触发器和一个硬编码的机会测试了下面的代码。结果我将阶段名称从“需求分析”更新为“价值主张”

   trigger ClientSign  on dsfs__DocuSign_Recipient_Status__c (after insert, after update) 
    {
    try
     {
        system.debug('In trigger');
        dsfs__DocuSign_Recipient_Status__c dssNew = Trigger.new[0];  
        dsfs__DocuSign_Recipient_Status__c dssOld = null; 
        if (!System.Trigger.isInsert) dssOld = Trigger.old[0];
        if (System.Trigger.isInsert || dssOld.dsfs__Recipient_Status__c != dssNew.dsfs__Recipient_Status__c)
        {
            if (dssNew.dsfs__DocuSign_Routing_Order__c == 1 && dssNew.dsfs__Recipient_Status__c == 'Completed')
            {
                Id myId = Id.valueOf('006f4000004IfWQAA0');
                Opportunity o = [SELECT Name, StageName FROM Opportunity WHERE id = :myId Limit 1];
                system.debug(o.Name);
                system.debug(o.StageName);
                o.StageName = 'Value Proposition';
                upsert o;
            }
        }
    }
    catch (Exception ex)
    {}
    }