2017-10-09 14 views
0

Docusign Java Restクライアントライブラリを使用しています。私は単純なテキストフィールドを持つサーバーテンプレートを持っています。受信者がこれらのフィールドを埋める必要がないように、フォームにあらかじめ入力されたデータを使用して、自分のプログラムから署名要求を送信したい。Docusign複合テンプレートのタブ値の事前入力

マイコードスニペット:

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(); 
    } 

しかし、フォームは私が満たされた任意の値なしに、受信者になります。フィールドは空白です。私はこれを間違っているのですか?助けてください。

答えて

1

DocuSignデザインパターンを2つ混在させます。つまり、コンポジットテンプレートとTemplateRoleを混在させないでください。

テンプレートの役割は、1つのサーバーテンプレートがあり、署名者情報および/またはテンプレートにあるDocuSignタブ情報をアプリケーションから事前に作成する必要がある場合に必要です。

コンポジットテンプレートは、templateroleの設計ができることを行うことができます。また、複数のサーバーテンプレートがあり、それらをすべて1つの封筒で使いたい場合や、複合テンプレートが必要な場合など、サーバーテンプレートと機内ドキュメントを混在させたい場合、複合テンプレートが必要です。適切なコンポジットテンプレートの例はhttps://stackoverflow.com/a/20036349/3530898

でご利用いただけます。サーバーテンプレートが1つしかなく、エンベロープへのドキュメントがサーバーテンプレートによってのみ提供される場合は、TemplateRoleをユーザーにする必要があります。私は、SSNのコピーを渡すことの使用が何であるか理解できませんでした、顧客が署名する必要がある文書ですか?

+0

サーバーテンプレートでは、nicコピー、パスポート(画像)などの添付ファイルを送信する必要があります。それがインラインテンプレートとしてドキュメントでコンポジットテンプレートを使用する理由です。御時間ありがとうございます。これを達成する方法を説明してください。 – J4Priyan

+0

この場合、タブコレクションはどこに設定する必要がありますか? – J4Priyan

+0

ありがとうAmit。私はあなたの答えであなたが提供したリンクによってアプローチを理解しました。答えを正しいとマークするのが遅れて申し訳ありません。 – J4Priyan

関連する問題