Docusignapi DocuSign API JAVA-如何以编程方式填充每个签名者的“公司”和“标题”字段

Docusignapi DocuSign API JAVA-如何以编程方式填充每个签名者的“公司”和“标题”字段,docusignapi,Docusignapi,是否有一种编程方式来填充每个签名者的公司和标题字段?怎么做 在此示例代码中,模板中的文档将替换为定义为方法参数的其他文档: public ESenderSummary sendDocumentsToSignByOrderOfSigner(List<ESigner> eSigners, String templateId, List<EDocument> eDocuments) throws ESignException { String docuS

是否有一种编程方式来填充每个签名者的公司标题字段?怎么做

在此示例代码中,模板中的文档将替换为定义为方法参数的其他文档:

public ESenderSummary sendDocumentsToSignByOrderOfSigner(List<ESigner> eSigners, String templateId, List<EDocument> eDocuments) throws ESignException {
            String docuSignAccountId = docuSignAuthenticationProvider.getAccountId();
    
            TemplatesApi templatesApi = docuSignAuthenticationProvider.getTemplatesApi();
            List<TemplateRole> templateRoles = new ArrayList<>();
    
            String emailSubject;
            EmailSettings emailSettings;
            Recipients recipients;
            try {
                EnvelopeTemplate envelopeTemplate = templatesApi.get(docuSignAccountId, templateId);
                emailSubject = envelopeTemplate.getEmailSubject();
                recipients = envelopeTemplate.getRecipients();
                List<Signer> signers = recipients.getSigners();
    
                int index = 1;
                for (Signer signer : signers) {
                    ESigner eSigner = eSigners.get(index - 1);
                    // create a signer recipient to sign the document, identified by name and email
                    signer.setEmail(eSigner.getEmail());
                    signer.setName(eSigner.getFirstName() + " " + eSigner.getLastName());
    
                    // create a templateRole for each signer from recipient to sign the document
                    TemplateRole templateRole = new TemplateRole();
                    templateRole.setEmail(eSigner.getEmail());
                    templateRole.setName(eSigner.getFirstName() + " " + eSigner.getLastName());
                    templateRole.setRoleName("signer" + index);
                    templateRole.setRoutingOrder(String.valueOf(index)); // ordering of sign
                    templateRoles.add(templateRole);
    
                    index++;
                }
    
                recipients.setSigners(signers);
                emailSettings = envelopeTemplate.getEmailSettings();
            } catch (ApiException e) {
                throw new ESignException("DocuSign API failed to retrieve envelope template " + templateId + ": " +  e.getMessage());
            }

        // Next, create the top level envelope definition and populate it.
        EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
        envelopeDefinition.setEmailSubject(emailSubject);
        envelopeDefinition.setRecipients(recipients);
        envelopeDefinition.setEmailSettings(emailSettings);
        envelopeDefinition.setTemplateRoles(templateRoles);
        envelopeDefinition.setDocuments(createDocuments(eDocuments));

        return sendEnvelope(envelopeDefinition, docuSignAccountId);
    }
public ESenderSummary sendDocumentsToSignByOrderOfSigner(列表设计人、字符串模板ID、列表eDocuments)引发ESignException{
字符串docuSignAccountId=docuSignAuthenticationProvider.getAccountId();
TemplatesApi TemplatesApi=docuSignAuthenticationProvider.getTemplatesApi();
List templateRoles=new ArrayList();
字符串主题;
电子邮件设置电子邮件设置;
受助人;
试一试{
EnvelopetTemplateEnvelopetTemplate=templatesApi.get(docuSignAccountId,templateId);
emailSubject=EnvelopetTemplate.getEmailSubject();
recipients=EnvelopetTemplate.getRecipients();
List signers=recipients.getSigners();
int指数=1;
for(签名者签名者:签名者){
ESigner-ESigner=eSigners.get(索引-1);
//创建一个签名者收件人来签名文档,通过名称和电子邮件进行标识
signer.setEmail(eSigner.getEmail());
signer.setName(eSigner.getFirstName()+“”+eSigner.getLastName());
//为收件人中的每个签名者创建一个templateRole来签名文档
TemplateRole TemplateRole=新的TemplateRole();
setEmail(eSigner.getEmail());
templateRole.setName(eSigner.getFirstName()+“”+eSigner.getLastName());
templateRole.setRoleName(“签名者”+索引);
templateRole.setRoutingOrder(String.valueOf(index));//符号的顺序
添加(templateRole);
索引++;
}
收件人。设置签名人(签名人);
emailSettings=EnvelopetTemplate.getEmailSettings();
}捕获(APIE){
抛出新的ESignException(“DocuSign API未能检索信封模板”+templateId+:“+e.getMessage());
}
//接下来,创建顶级封套定义并填充它。
信封定义信封定义=新信封定义();
信封定义。setEmailSubject(emailSubject);
信封定义。设置收件人(收件人);
EnvelopedDefinition.setEmailSettings(emailSettings);
包络定义。设置模板孔(模板孔);
setDocuments(createDocuments(eDocuments));
返回sendEnvelope(信封定义,DocusignAccounted);
}

只有当签名者是帐户中的DocuSign用户,然后您用他们的公司和头衔更新他们的帐户/用户信息时,才能执行此操作


“公司”和“标题”是固定的选项卡,所以您可以使用“文本”选项卡,通过编程方式更新值并使其成为只读。您将获得同样的结果。

谢谢@InbarGazit!但是,当我尝试从文档模板中检索选项卡时,Tabs Tabs=templatesApi.getDocumentTabs(docusignaccount,templateId,templateDocument.getDocumentId())选项卡的所有属性列表都是空的。我想到了自定义字段的用法。但是我不明白怎么做。看这个-is有8种语言的代码示例,包括Java