DocuSign API:正确分配模板角色

DocuSign API: Assigning TemplateRoles Properly

使用 C# 中的 DocuSign API,我很容易就能通过测试信封。现在我正在使用下图在信封上进行测试。

我知道我必须为收件人分配一个 TemplateRole,但是当我发送电子邮件时,出现了问题。我假设通过定义多个角色,将设置签名顺序中的每个项目。无论出于何种原因,这种情况都没有发生,而是我发出了两份文件。根据我包含的 TemplateRoles,还将为发件人 name/address 插入虚拟数据。我想阻止这种情况。

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# 示例代码。

请显示创建 envDef 对象的完整代码。 您是否正在设置模板 ID?

每个 TemplateRole 对象的 RoleName 必须与模板中的角色名称完全匹配。

必须设置模板定义的每个角色。如果您决定要从模板开始,然后修改它以删除角色,我相信这是可能的,但您需要使用复合模板来完成。相反,我建议您考虑使用两个模板,一个具有两个角色,一个具有一个角色。

重新发送给批量收件人。我会把它作为一个单独的问题来问。我建议你使用逐步优化。首先让你的信封与角色替换一起工作。

然后转到发送由 CSV 文件控制的许多不同信封的不同问题(批量发送)。

您可以使用 DocuSign compositeTemplates feature and create envelopes from templates. This is more flexible than using TemplateRole

查看此示例code for creating envelope from a template. It is using the 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);