Как я могу включить несколько шаблонов в конверт? - PullRequest
0 голосов
/ 11 апреля 2019

Я не могу понять, как отправить несколько заполненных шаблонов DocuSign в конверте с использованием DocuSign C # SDK.Я могу заполнить и отправить один шаблон в конверте, но не могу сделать это с несколькими шаблонами.

Это фрагмент кода, который я использую, который успешно заполняет и отправляет шаблон:

var rolesList = new List<TemplateRole>();

var tRole = new TemplateRole   
{
    Tabs = new Tabs(),
    RoleName = "rolename"
};

tRole.Name = "joe smith";
tRole.Email = "email-address";

var tabData = new List<Text>();

// Populate the tabData 

tRole.Tabs.TextTabs = tabData;
rolesList.Add(tRole);

var envDef = new EnvelopeDefinition
{
    EmailSubject = "Pleae sign this",
    TemplateRoles = rolesList,
    TemplateId = "first template id",
    Status = "sent",
};

var envelopesApi = new EnvelopesApi();

await envelopesApi.CreateEnvelopeAsync("accountId", envDef);

Для нескольких шаблонов я предполагаю, что мне нужно было использовать CompositeTemplate, поэтому я попробовал этот код:

var envDef = new EnvelopeDefinition
{
    EmailSubject = subject,
    TemplateRoles = roles,
    Status = send?  "sent" : "created",
};

var compositeTemplate = new CompositeTemplate()
{
    ServerTemplates = new List<ServerTemplate>(),
    CompositeTemplateId = Guid.NewGuid().ToString(),
};


envDef.CompositeTemplates = new List<CompositeTemplate>();
envDef.CompositeTemplates.Add(compositeTemplate);

ServerTemplate first = new ServerTemplate()
{
    TemplateId = "first template id",
    Sequence = "1"
};

ServerTemplate second = new ServerTemplate()
{
    TemplateId = "second template id",
    Sequence = "2",

};

compositeTemplate.ServerTemplates.Add(first);
compositeTemplate.ServerTemplates.Add(second);

var envelopesApi = new EnvelopesApi();

await envelopesApi.CreateEnvelopeAsync("accountId", envDef);

Однако с этим кодом вызов CreateEnvelopeAsync выдает следующее исключение: DocuSign.eSign.Client.ApiException: Ошибка вызова CreateEnvelope: {"errorCode": "ENVELOPE_IS_INCOMPLETE", "message": "Конверт не завершен. Полный конверт требует документы, получатели, вкладки и строку темы."}

Я, очевидно, неправильно настраиваю CompositeTemplate (скорее всего, не заполняет документы), но не могу найти пример того, как правильно его заполнить.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Не следует смешивать TemplateRole и CompositeTemplate в одном и том же определении конверта, так как они являются разными стратегиями проектирования. Как предложил Ларри, если вы хотите добавить документ для добавления в конверт из двух разных шаблонов, то вам нужно добавить два элемента CompositeTemplate. Кроме того, когда вы ссылаетесь на шаблон сервера, вам также необходимо указать встроенный шаблон, чтобы предоставить сведения о RecipientRole. В шаблоне сервера у вас есть заполнитель для получателей, но не имя и адрес электронной почты получателей, поэтому через InlineTemplate вы предоставляете имя и адрес электронной почты получателя-заполнителя, которому вы хотите адресовать конверт.

0 голосов
/ 12 апреля 2019

Поскольку ваши два серверных шаблона отделены друг от друга, я считаю, что вы хотите создать массив из двух составных шаблонов.Каждый составной элемент шаблона будет содержать один шаблон сервера.

См. Стр. 93 и ниже в этом примере. В этом примере отправляется конверт с

  1. шаблоном от DocuSign («шаблон сервера»)
  2. Локально созданный исходный документ HTML.

В вашем случае повторите, как элемент 1 добавляется вместо существующего элемента 2.

Ключ - это два разных составных элемента шаблона,не два серверных шаблона в одном элементе составного шаблона.

...