API DocuSign: правильное назначение шаблонных ролей
Используя API DocuSign в C#, я легко смог пройти тестовый конверт. Сейчас я тестирую конверт со следующей схемой.
Я знаю, что должен назначить TemplateRole
для получателя, но когда я отправляю электронное письмо, все идет не так. Я предположил, определив несколько ролей, каждый из элементов в порядке подписи будет настроен. По какой-то причине этого не происходит, и вместо этого я получаю два документа. В зависимости от того, какие TemplateRoles я включаю, фиктивные данные будут вставляться также для имени / адреса отправителя. Я хотел бы предотвратить это.
EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.EmailSubject = "[DocuSign C# SDK] - Sample Signature Request";
envDef.TemplateId = TemplateID;
TemplateRole DirectorRole = new TemplateRole();
DirectorRole.Email = RecipientEmail;
DirectorRole.Name = RecipientName;
DirectorRole.RoleName = "Director";
TemplateRole TraineeRole = new TemplateRole();
TraineeRole.Email = RecipientEmail;
TraineeRole.Name = "A Trainee";
TraineeRole.RoleName = "Trainee";
List<TemplateRole> rolesList = new List<TemplateRole>() { DirectorRole, TraineeRole };
envDef.TemplateRoles = rolesList;
envDef.Status = "sent";
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
Вы можете видеть, что у меня есть возможность отправить массовому получателю или частному лицу. Я хотел бы отправить один или другой. Как я могу сделать это? Вот мой текущий код. Буду признателен за общие примеры того, как назначать разные типы ролей, поскольку, насколько я знаю, не так много примеров кода на C#.
2 ответа
Вы можете использовать функцию композитных шаблонов DocuSign и создавать конверты из шаблонов. Это более гибко, чем использование TemplateRole.
Посмотрите этот пример кода для создания конверта из шаблона. Он использует DocuSign C# SDK
string accountId = Init();
var envDef = new EnvelopeDefinition()
{
EmailSubject = "Envelope with multiple recipient roles",
Status = "sent",
CompositeTemplates = new List<CompositeTemplate>()
{
new CompositeTemplate()
{
ServerTemplates = new List<ServerTemplate>()
{
new ServerTemplate()
{
TemplateId = "", //CreateTemplate()
Sequence = "1"
}
},
InlineTemplates = new List<InlineTemplate>()
{
new InlineTemplate()
{
Sequence = "1",
Recipients = new Recipients()
{
Signers = new List<Signer>()
{
new Signer()
{
Email = "Janedoe@acme.com",
Name = "Jane Doe",
RecipientId = "1",
RoleName = "Signer1",
},
new Signer()
{
Email = "Bobdoe@acme.com",
Name = "Bob Doe",
RecipientId = "2",
RoleName = "Signer2",
},
new Signer()
{
Email = "DanDoe@acme.com",
Name = "Dan Doe",
RecipientId = "3",
RoleName = "Signer3",
}
}
}
}
}
}
}
};
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
Пожалуйста, покажите свой полный код для создания envDef
объект. Вы устанавливаете идентификатор шаблона?
RoleName
для каждого TemplateRole
Объект должен точно соответствовать имени роли в шаблоне.
Каждая роль, определенная шаблоном, должна быть установлена. Если вы решите, что хотите начать с шаблона, а затем изменить его, чтобы удалить роль, я считаю, что это возможно, но вам нужно будет сделать это с помощью составных шаблонов. Вместо этого я рекомендую вам рассмотреть возможность использования двух шаблонов: один с двумя ролями, другой с одной ролью.
Повторная отправка массовому получателю. Я бы задал это как отдельный вопрос. Я предлагаю вам использовать пошаговое уточнение. Сначала заставьте ваши конверты работать с заменой ролей.
Затем перейдите к другому вопросу рассылки множества различных конвертов, контролируемых файлом CSV (массовая отправка).