2017-02-07 2 views
0

Ich folgte dem "Rezept" auf dem Docusign-Dev-Center zum Senden eines Dokuments aus einer PDF-Vorlage, die ich hochgeladen habe. Es funktioniert, aber es ist ein Workflow, bei dem jeder Empfänger dasselbe Dokument hinzufügen (und/oder signieren) kann.Wie verwende ich dieselbe Vorlage für mehrere Empfänger?

Ich muss in der Lage sein, Dokumente aus der gleichen Vorlage für eine Liste von Empfängern zu generieren und sie alle unterschreiben zu lassen. Ich denke, der beste Weg wäre, programmatisch Templates für jeden Empfänger zu generieren. Geben Sie ihren Namen und ihre Adresse mit einem Dataset ein, das ich über den Code einlese und dann an jeden Empfänger zum Signieren abschicke. Dies ist der Beispielcode I treid mit:

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

Zunächst versuchte ich nur die TemplateRole reinstatiating („Trole“ hier), neue E-Mail addessses assiging für jeden und dann den Umschlag Definition jeden zu senden, aber das schickte immer noch jedem Empfänger dasselbe gemeinsame Dokument.

Muss ich also eine Vorlage für jeden Empfänger erstellen, wenn ich möchte, dass sie ihr eigenes signierbares Dokument haben oder gibt es eine praktikablere Möglichkeit, dies zu tun, die ich nicht sehe?

Antwort

1

Ich bin ein bisschen hier verwirrt, aber hier meine 2 Cent ist:

Eine Vorlage ist im Grunde ein voreingestellter Umschlag mit bestimmten Dokumenten, Empfänger Rollen, Registerkarten und andere Geschäftslogik. Die Idee besteht darin, dieselbe "Vorlage" zu verwenden, um so viele Umschläge zu erzeugen. Ein sehr einfacher Anwendungsfall könnte ein NDA-Formular für Mitwirkende an meinem Open-Source-Projekt sein: Ich richte eine Vorlage aus dem NDA-PDF-Dokument ein, lade das Dokument nach DocuSign hoch, füge Platzhalter-Tabs für mehrere Mitwirkende hinzu (Name) , E-Mail, Datum und Unterschrift), sowie Platzhalter für eine Empfängerrolle (die ich Contributor nennen kann). Sobald ich meine Vorlage speichern, kann ich die Vorlage ID von meinem DocuSign Konto kopieren und in dem SDK verwenden, wie Sie, in einer Schleife erwähnt:

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

Welche Art von Objekt ist myRecipients und wo kommt von ihm kommen? Ich möchte in der Lage sein, eine Liste von E-Mail-Adressen und Namen zu haben und in der Lage zu sein, ein PDF für jede Person zu generieren, die eine E-Mail erhalten würde, um zu unterschreiben. Die Art und Weise, wie ich es jetzt mache, scheint ein Dokument ("oder enevlope") über alle von mir eingerichteten Rollen zu teilen, damit sie das Zeichen aufrufen können. Ich muss jede Person in der Lage sein, ihre eigene zu unterzeichnen. – user609926

+0

myRecipents ist ein Beispiel für die Datenstruktur, die die Liste der Empfänger enthalten sollte, sollten Sie die Liste der E-Mails/Namen irgendwo richtig haben? Die Idee ist nur, diese Liste zu durchlaufen. Beachten Sie, dass ich envDef.TemplatesRoles absichtlich jedes Mal in eine neue Liste zurücksetzt, so dass es immer 1 und nur 1 einzelne Empfängerdaten enthält. Fügen Sie keine Vorlagenrollen hinzu. Du solltest wie ich und setze es bei jeder Schleife Iteration. –

Verwandte Themen