在新的 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 !!
您知道如何使用新的 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 !!