将Docusign信封与Salesforce自定义对象关联

将Docusign信封与Salesforce自定义对象关联,salesforce,docusignapi,apex,Salesforce,Docusignapi,Apex,我在DS中创建了一个模板,其中包含映射到Salesforce字段的自定义标记。当通过DS提供的JS按钮示例代码使用该模板时,该模板运行良好,字段显示与预期一致 我现在正尝试使用docusignsoapapi自动化这个过程。创建信封时,不填充自定义字段;甚至签名者字段 下面是我的代码:- DocusignAPI.ArrayOfRecipient1 recipients = new DocusignAPI.ArrayOfRecipient1(); recipients.Recipient

我在DS中创建了一个模板,其中包含映射到Salesforce字段的自定义标记。当通过DS提供的JS按钮示例代码使用该模板时,该模板运行良好,字段显示与预期一致

我现在正尝试使用docusignsoapapi自动化这个过程。创建信封时,不填充自定义字段;甚至签名者字段

下面是我的代码:-

DocusignAPI.ArrayOfRecipient1 recipients = new DocusignAPI.ArrayOfRecipient1(); 
    recipients.Recipient = new list<DocusignAPI.Recipient>();
    DocusignAPI.Recipient recipient = new DocusignAPI.Recipient();
    recipient.Email = signer_email;
    recipient.UserName = signer_name;
    recipient.ID = 1;
    recipient.Type_x = 'Signer';
    recipient.RoutingOrder = 1;
    recipients.Recipient.add(recipient);

    DocusignAPI.ArrayOfTemplateReference templateReferences = new DocusignAPI.ArrayOfTemplateReference();
    templateReferences.TemplateReference = new list<DocusignAPI.TemplateReference>();
    DocusignAPI.TemplateReference templateReference = new DocusignAPI.TemplateReference();
    TemplateReference.Template = '6bc2930f-6d46-4804-a9fc-69d1cf3ebe09';
    templateReference.TemplateLocation = 'Server';
    templateReferences.TemplateReference.add(templateReference);


    DocusignAPI.EnvelopeInformation ei = new DocusignAPI.EnvelopeInformation();
    ei.AccountId  = account_id;
    ei.Subject = 'Lorem Ipsum';
    ei.EmailBlurb = 'More text...';
    // Create an envelope and fill it in

    DocusignAPI.CustomField field = new DocusignAPI.CustomField (); 
    field.Name = 'DSFSSourceObjectId'; 
    field.Value = 'a1qW0000000vMCj';
    field.Show = 'false';
    field.CustomFieldType = 'Text';
    DocusignAPI.ArrayOfCustomField arrayOfCustomFields = new DocusignAPI.ArrayOfCustomField();
    arrayOfCustomFields.CustomField  = new list<DocusignAPI.CustomField>();
    arrayOfCustomFields.CustomField.add(field);

     ei.CustomFields = arrayOfCustomFields;

    try {
            DocusignAPI.EnvelopeStatus result = api_sender.CreateEnvelopeFromTemplates(templateReferences, recipients, ei, true);

        envelope_id = result.EnvelopeID;
        System.debug('Returned successfully, envelope_id = ' + envelope_id );
    } catch ( CalloutException e) {
        System.debug('Exception - ' + e );
        error_code = 'Problem: ' + e;
        error_message = error_code;
    }      
DocusignAPI.ArrayOfRecipient1 recipients=new DocusignAPI.ArrayOfRecipient1();
recipients.Recipient=新列表();
DocusignAPI.Recipient Recipient=新的DocusignAPI.Recipient();
recipient.Email=签名者\电子邮件;
recipient.UserName=签名者\姓名;
recipient.ID=1;
recipient.Type_x='Signer';
recipient.RoutingOrder=1;
recipients.Recipient.add(收件人);
DocusignAPI.arrayoftemplaterreference templaterreferences=新DocusignAPI.arrayoftemplaterreference();
templateReferences.TemplateReference=新列表();
DocusignAPI.templaterreference templaterreference=新的DocusignAPI.templaterreference();
TemplateReference.Template='6bc2930f-6d46-4804-a9fc-69d1cf3ebe09';
templateReference.TemplateLocation='Server';
templateReferences.TemplateReference.add(TemplateReference);
DocusignAPI.EnvelopeInformation ei=新的DocusignAPI.EnvelopeInformation();
ei.AccountId=账户id;
ei.受试者=‘Lorem Ipsum’;
ei.EmailBlurb='更多文本…';
//创建一个信封并填写它
DocusignAPI.CustomField=新的DocusignAPI.CustomField();
field.Name='DSFSSourceObjectId';
field.Value='a1qW0000000vMCj';
field.Show='false';
field.CustomFieldType='Text';
DocusignAPI.ArrayOfCustomField arrayOfCustomFields=新的DocusignAPI.ArrayOfCustomField();
arrayOfCustomFields.CustomField=新列表();
arrayOfCustomFields.CustomField.add(字段);
ei.CustomFields=arrayOfCustomFields;
试一试{
DocusignAPI.EnvelopeStatus结果=api_sender.CreateEnvelopeFromTemplates(templateReferences,recipients,ei,true);
信封id=结果。信封id;
调试('成功返回,信封id='+信封id');
}捕捉(e){
系统调试('Exception-'+e);
错误代码='问题:'+e;
错误消息=错误代码;
}      
所有CustomTag都与上面CustomField中定义的id为的自定义对象相关


非常感谢您的帮助。

我需要在Id中添加对象API名称。解决方案是:-

DocusignAPI.CustomField field = new DocusignAPI.CustomField (); 
    field.Name = 'DSFSSourceObjectId'; 
    field.Value = 'a1qW0000000vMCj~Property__c';
    field.Show = 'false';
    field.CustomFieldType = 'Text';