API DocuSign: правильное назначение шаблонных ролей

Используя API DocuSign в C#, я легко смог пройти тестовый конверт. Сейчас я тестирую конверт со следующей схемой.

Docusign Flow

Я знаю, что должен назначить 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 (массовая отправка).

Другие вопросы по тегам