在新的 DocuSign Apex 工具包中发送合并字段数据

Send Merge Field data in new DocuSign Apex Toolkit

您知道如何使用新的 Apex Toolkit Docusign 将数据发送到自定义字段(salesforce 合并字段)吗?API?

我一直在学习这个教程:salesforce-sending-signing-template

但没有关于使用 salesforce 数据填充自定义字段的示例。 我尝试使用自定义字段 class,但它只有读取属性。

如何将 salesforce 数据发送到模板文档?

public class SampleMergeFields {

 public static void sendMergeFieldTemplate() { 

     //create recipient
     dfsle.Recipient myRecipient = dfsle.Recipient.fromSource(
                                     'XXXXX', //name of recipient
                                     'xxxx.xx@xxx.com', //email of the recipient
                                     null,
                                     'Signer 1', //match role value defined in the template
                                     new dfsle.Entity(UserInfo.getUserId())); //pass in the ID of the source object here

    //create document                                 
    dfsle.UUID myTemplateId = dfsle.UUID.parse('XXXXX-XXXX-XX'); //Docusign template Id
    dfsle.Document myDocument =dfsle.Document.fromTemplate(
                                        myTemplateId, // templateId in dfsle.UUID format
                                        'myTemplate');

    //create custom field
     dfsle.CustomField myCustomField1 = new dfsle.CustomField(
                                                'text', //type
                                                '##SFStudent__c', //##SF+Salesforce API name of the object                                                    
                                                'a0G5A00000TbNxVUAV', //Id of the record                                          
                                                null,
                                                true,
                                                true);

   dfsle.Envelope myEnvelope = new dfsle.Envelope(
                               null,
                               null,
                               null,
                               null,
                               new List<dfsle.Document> { myDocument },
                               null,
                               new List<dfsle.CustomField> { myCustomField1 },
                               null,
                               'Hello from DocuSign',
                               'My Message',
                               null,
                               null);
   myEnvelope = myEnvelope.withRecipients(new List<dfsle.Recipient> { myRecipient });
   // Send the envelope
   myEnvelope = dfsle.EnvelopeService.sendEnvelope(
                                        myEnvelope, // The envelope to send
                                        true); // Send now?

 } 

}

你好Rene,
使用以上代码,您将能够使用 Apex 工具包为 DocuSign 模板中定义的 Salesforce 合并字段设置合并字段数据。

请注意,您必须传递 Salesforce.com 记录的 RecordID,模板应从名为“##SFStudent__c”的自定义字段中提取值。例如,如果您的组织中有一个自定义对象 Student__c,它有两个字段 a1__c 和 a2__c,并且考虑到这两个字段都存在于您用于发送的模板中。在这种情况下,自定义字段的名称应为“##SF”+API 对象名称,自定义字段的值应为 Salesforce.com 记录 ID。

您也可以从多个 Salesforce.com 对象定义合并字段。在这种情况下,您将必须为对象定义额外的自定义字段。假设您有一个模板,其中包含来自客户和联系人的字段。在这种情况下,您将必须创建 2 个名为“##SFAccount”和“##SFContact”的自定义字段并相应地填充它们的值。

请注意,Salesforce connect 还需要在您正在使用的 DocuSign 帐户中定义,并且应该指向安装了该工具包的 Salesforce.com 组织才能正常工作。

你能在你这边试试看吗?

我刚刚发现了一种方法,甚至不需要在代码中创建字段。

您可以做的是在 Salesforce/DocusignAppLauncher 中或直接在 Docusign 中创建您的自定义字段,然后在 Docusign 中获取其 UUID(在 URL 中可见 - 在“文档自定义字段”菜单中)。

从该 UUID,您可以将 salesforce 合并字段关联到代码创建的字段(或“Tab”以使用 docusign 命名),如下所示:

dfsle.Tab currentTab = new dfsle.TextTab()
   .withRequired('true') // Signer must enter value
   .withAnchor(new dfsle.Tab.Anchor('\MyAnchorName\'))
   .withDataLabel('DataLabelName')
   .withName('Name')
   .withCustomTabID(dfsle.UUID.parse('MyMergeFieldDocusignUUID')); // THIS IS THE TRICK !!