我正在使用Docusign Java Rest客户端库。我有一个简单文本字段的服务器模板。我想从我的程序中发送带有预先填充数据的esignature请求,以便收件人不必填写这些字段。
我的代码段:
EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.setEmailSubject("ATTACHMENT TESTING");
List<CompositeTemplate> compositeTemplates = new ArrayList<>();
envDef.setCompositeTemplates(compositeTemplates);
CompositeTemplate t1 = new CompositeTemplate();
List<ServerTemplate> serverTemplates = new ArrayList<>();
t1.setServerTemplates(serverTemplates);
ServerTemplate st = new ServerTemplate();
st.setSequence("1");
st.setTemplateId("8as3232a-ea84-448d-852b-7617bf4d1759");
serverTemplates.add(st);
CompositeTemplate t2 = new CompositeTemplate();
List<InlineTemplate> inlineTemplates = new ArrayList<>();
t2.setInlineTemplates(inlineTemplates);
InlineTemplate it = new InlineTemplate();
it.setSequence("2");
inlineTemplates.add(it);
Document doc = new Document();
doc.setDocumentId("2");
doc.setName("SSN Copy");
doc.setRemoteUrl("https://images.pexels.com/photos/10656/c4f497772338464a5d4e4109966e02f7.jpg");
doc.setFileExtension("jpeg");
t2.setDocument(doc);
compositeTemplates.add(t1);
compositeTemplates.add(t2);
List<TemplateRole> templateRoles = new ArrayList<>();
TemplateRole templateRole = new TemplateRole();
templateRole.setRoleName("Customer");
templateRole.setName(currentUser.getDisplayName());
templateRole.setEmail(currentUser.getEmail());
/********Prepopulating data to fields.
Tabs tabs = new Tabs();
Text text1 = new Text();
text1.setTabLabel("firstName");
text1.setValue("Adams");
tabs.getTextTabs().add(text1);
Text text2 = new Text();
text2.setTabLabel("lastName");
text2.setValue("Johnson");
tabs.getTextTabs().add(text2);
templateRole.setTabs(tabs);
templateRoles.add(templateRole);
// assign template role(s) to the envelope
envDef.setTemplateRoles(templateRoles);
envDef.setStatus("sent");
// instantiate a new EnvelopesApi object
EnvelopesApi envelopesApi = new EnvelopesApi();
// call the createEnvelope() API
try {
EnvelopeSummary envelopeSummary = envelopesApi.createEnvelope(accountId, envDef);
} catch (ApiException e) {
e.printStackTrace();
}
但表格是收件人,没有任何价值我填写。字段是空白的。我做错了吗?请帮忙。
答案 0 :(得分:1)
您正在混合两种不同的DocuSign设计模式,即您不应混合使用Composite Template和TemplateRole。
如果您有一个服务器模板,并且希望从应用程序中预填充签名者信息和/或模板中存在的任何DocuSign选项卡信息,则需要模板角色。
虽然复合模板可以做一个模板设计可以做的事情,但它可以做很多其他的事情,比如你有多个服务器模板,并希望在一个信封中使用所有这些,那么你需要复合模板,或者当你想要将服务器模板与飞行中文档混合,那么您需要复合模板。复合模板的正确示例位于https://stackoverflow.com/a/20036349/3530898
在您的情况下,如果您只有一个服务器模板,并且您的信封中的文档仅由您的服务器模板提供,那么您只需要使用TemplateRole。我无法理解传递文件SSN Copy的用途是什么,是客户需要签署的文件吗?