2017-02-07 12 views
0

私はアップロードしたpdfテンプレートからドキュメントを送信するために、docusign開発センターの "レシピ"に従いました。それは機能しますが、各受信者が同じドキュメントに追加(および/または署名)できるワークフローです。複数の受信者に同じテンプレートを使用するにはどうすればよいですか?

私は、受信者のリストのために同じテンプレートから文書を生成し、すべて署名する必要があります。私は、各受信者のテンプレートをプログラムで生成し、コードでプルするデータセットを使用して名前と住所情報を記入し、それを各受信者に送信して署名するのが最善の方法です。これは、サンプル・コードI TREIDである:最初

  string username = conf.ConfigurationManager.AppSettings["username"]; 
     string password = conf.ConfigurationManager.AppSettings["password"]; 
     string integratorKey = conf.ConfigurationManager.AppSettings["integratorKey"]; 

     // initialize client for desired environment (for production change to www) 
     ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi"); 
     Configuration.Default.ApiClient = apiClient; 

string username = conf.ConfigurationManager.AppSettings["username"]; 
     string password = conf.ConfigurationManager.AppSettings["password"]; 
     string integratorKey = conf.ConfigurationManager.AppSettings["integratorKey"]; 

     // initialize client for desired environment (for production change to www) 
     ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi"); 
     Configuration.Default.ApiClient = apiClient; 

     // configure 'X-DocuSign-Authentication' header 
     string authHeader = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}"; 
     Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader); 

     // we will retrieve this from the login API call 
     string accountId = null; 

     ///////////////////////////////////////////////////////////////// 
     // STEP 1: LOGIN API   
     ///////////////////////////////////////////////////////////////// 

     // login call is available in the authentication api 
     AuthenticationApi authApi = new AuthenticationApi(); 
     LoginInformation loginInfo = authApi.Login(); 

     // parse the first account ID that is returned (user might belong to multiple accounts) 
     accountId = loginInfo.LoginAccounts[0].AccountId; 
     var baseUrl = loginInfo.LoginAccounts[0].BaseUrl; 
     // Update ApiClient with the new base url from login call 
     apiClient = new ApiClient(loginInfo.LoginAccounts[0].BaseUrl); 

     EnvelopeDefinition envDef = new EnvelopeDefinition(); 
     envDef.EmailSubject = "[TEMPLATE NAME]"; 

     // provide a valid template ID from a template in your account 
     envDef.TemplateId = "[TEMPLATE ID]"; 
var rolesList = new List<TemplateRole>(); 

     // assign recipient to template role by setting name, email, and role name. Note that the 
     // template role name must match the placeholder role name saved in your account template. 
     TemplateRole tRole = new TemplateRole(); 
     tRole.Email = "XXX"; 
     tRole.Name = "XXX"; 
     tRole.RoleName = "Test Role"; 
     rolesList.Add(tRole); 
      envDef.TemplateRoles = rolesList; 
     envDef.Status = "sent"; 
     EnvelopesApi envelopesApi = new EnvelopesApi(); 
     EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); 

私はただ一つ一つを送信するために、エンベロープの定義を使用して、各1用の新しい電子メールaddesssesをassiging、(ここでは「trole」)TemplateRoleをreinstatiatingと試みたが、その依然として各受信者に同じ共有文書を送信していました。

受信者ごとに独自の署名可能な文書を作成する必要がある場合はテンプレートを作成する必要がありますか、これを行うためのより現実的な方法がありますか?

答えて

1

私はここで少し混乱しているが、ここに私の2セントです:

テンプレートは、基本的には、特定のドキュメント、受信者の役割、タブ、およびその他のビジネスロジックと予め設定された封筒です。アイデアは、同じ "テンプレート"を再利用して多くの封筒を生成することです。

私のオープンソースプロジェクトに貢献するためのNDAフォームは非常に簡単です:NDA PDFドキュメントからテンプレートをセットアップし、ドキュメントをDocuSignにアップロードし、いくつかの寄稿者情報のプレースホルダタブを追加します、電子メール、日付、署名)、受信者ロール(投稿者と呼ぶことができます)のプレースホルダです。私は私のテンプレートを保存すると、私は私のDocuSignのアカウントからテンプレートIDをコピーすることができ、あなたが言及したように、ループ内で、SDKでそれを使用する:

myRecipients.forEach(function(myRecipient) { 
    var rolesList = new List<TemplateRole>(); 
    TemplateRole tRole = new TemplateRole(); 
    tRole.Email = myRecipient.email; 
    tRole.Name = myRecipient.name; 
    tRole.RoleName = "Test Role"; 
    rolesList.Add(tRole); 
    envDef.TemplateRoles = rolesList; 
    EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); 
    ... 
    }); 
+0

オブジェクトのどのような種類がmyRecipientsで、どこから来るのでしょうか?私は電子メールアドレスと名前のリストを持つことができ、署名する電子メールを受け取る各人のためにpdfを生成できるようにしたいと思います。私が今やっているやり方は、私が設定したすべてのロールにわたって1つのドキュメント(「enevlope」)を共有しているように見えます。私は自分自身に署名できるように、それぞれの人が必要です。 – user609926

+0

myRecipentsは、受信者のリストを含むべきデータ構造の例として使用されています。あなたはどこか正しいメール/名前のリストを持っているべきですか?アイデアはこのリストをループすることです。 envDef.TemplatesRolesを毎回新しいリストにリセットするので、常に1つの受信者データのみが含まれるようになりました。テンプレートロールを追加しないでください。あなたは私のようにして、ループの繰り返しごとにリセットする必要があります。 –

関連する問題