在信封到信封的基础上重新定义模板上的收件人角色?

时间:2019-01-22 18:01:37

标签: c# docusignapi docusigncompositetmplts

我想将DocuSign模板重用于同一信封中的多个收件人。模板非常简单。它有几个签名和日期签名的块。

收件人将具有不同的路由顺序。据我所知,我的API请求需要使路由顺序角色名称与DocuSign模板匹配。如果角色名称和路由顺序不匹配,我将在信封上得到一个空角色(具有所有签名块)。我也尝试过“在草稿中合并角色”。空角色将合并到第二个收件人中,但是我丢失了该收件人的所有模板签名块。

是否可以使用模板来修改模板接收者角色的定义?理想情况下,我想使用完全相同的模板,但要为该模板更改该角色的路由顺序第二个收件人。我想避免在DocuSign中创建新模板,因为最终会出现许多组合。


我想完成(更新):

我想在一个信封中两次使用相同的模板。每个收件人将被分配到模板的单个副本。最后的信封应该有两个收件人,两个文档,每个收件人只能访问和查看其文档。

问题在于模板的角色定义了路由顺序。路由顺序“ 1”适用于使用该模板的第一个收件人,但是第二个收件人需要路由顺序“ 2”。 (模板的角色在所有情况下都希望路由顺序为“ 1”,但对于第二个收件人,我希望该值为“ 2”。)


模板信息示例:

  • 模板名称(出于示例目的):测试模板#1
  • 角色名称:申请人1
  • 路由顺序:1(如果我未定义路由顺序,DocuSign仍将其视为“ 1”)

示例请求:

EnvelopeDefinition envDef = new EnvelopeDefinition();

var signer1 = new Signer()
{
    RecipientId = "1",
    Name = "First User 1",
    RoleName = "Applicant 1",
    Email = "fakeemail1@email.com",
    RoutingOrder = "1"
};

var signer2 = new Signer()
{
    RecipientId = "2",
    Name = "First User 2",
    RoleName = "Applicant 1",
    Email = "fakeemail2@email.com",
    RoutingOrder = "2"
};

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

var composite1 = new CompositeTemplate()
{
    ServerTemplates = new List<ServerTemplate>()
    {
        new ServerTemplate("1", "Test Template #1 TEMPLATE_ID_GUID_HERE")
    },
    InlineTemplates = new List<InlineTemplate>()
    {
        new InlineTemplate()
        {
            Sequence = "1",
            Recipients = new Recipients()
            {
                Signers = new List<Signer>()
                {
                    signer1
                }
            }
        }
    }

};

var composite2 = new CompositeTemplate()
{
    ServerTemplates = new List<ServerTemplate>()
    {
        new ServerTemplate("2", "Test Template #1 TEMPLATE_ID_GUID_HERE")
    },
    InlineTemplates = new List<InlineTemplate>()
    {
        new InlineTemplate()
        {
            Sequence = "2",
            Recipients = new Recipients()
            {
                Signers = new List<Signer>()
                {
                    signer2
                }
            }
        }
    }

};

envDef.CompositeTemplates.Add(composite1);
envDef.CompositeTemplates.Add(composite2);
envDef.EnforceSignerVisibility = "true";

// Code to send envelope

注意:此外,我使用的是复合模板,因为我们的信封可能会包含模板和上传文档的各种组合。

谢谢!

1 个答案:

答案 0 :(得分:0)

这可以通过在创建信封时传递查询参数-change_routing_order=true来实现。因此,用于创建信封的端点将为

https://{{EnvironmentVal}}/restapi/v2/accounts/{{AccountIdVal}}/envelopes?change_routing_order=true

请求的正文将是

要求正文:

其中相同的templateId-076d9062-cfc7-408b-a47f-88c4b74af62b用于相同的RoleName,但差异路由顺序和差异签名者详细信息

{
   "compositeTemplates": [
      {
         "inlineTemplates": [
            {
              "recipients": {
                  "signers": [
                     {
                        "email": "email+internal@gmail.com",
                        "name": "John Doe",
                        "recipientId": "1",
                        "roleName": "Signer1",
                        "routingOrder": "1"
                     }
                  ]
               },
               "sequence": "2"
            }
         ],
         "serverTemplates": [
            {
               "sequence": "1",
               "templateId": "076d9062-cfc7-408b-a47f-88c4b74af62b"
            }
         ]
      },
      {
         "inlineTemplates": [
            {
               "recipients": {
                  "signers": [
                     {
                        "email": "email+internal2@gmail.com",
                        "name": "John Doe2",
                        "recipientId": "2",
                        "roleName": "Signer1",
                        "routingOrder": "2"
                     }
                  ]
               },
               "sequence": "2"
            }
         ],
         "serverTemplates": [
            {
               "sequence": "1",
               "templateId": "076d9062-cfc7-408b-a47f-88c4b74af62b"
            }
         ]
      }
   ],
   "status": "sent"
}