首页 > 解决方案 > 如何使第二个签名者依赖于第一个签名者的选择?条件标签和签名者

问题描述

我正在尝试使用 DocuSing 的 C# SDK 创建一个特定的工作流。

这个想法是,第一个签名者在签名过程中会有一个选择,这个选择将决定下一个签名者的签名位置。此选项是 2 个复选框。

这是这样的场景:在文档中的一个子句中,第一个签名者有 2 个选择(复选框),当第一个签名者选中一个时,将显示一个初始选项卡(位置取决于已选中的复选框)。下一个签名者将无法修改选中的复选框,但他们的初始选项卡位置必须取决于第一个签名者的选择。

目前,我无法实现这种情况。初始选项卡在签名过程中始终可见(想法是隐藏这些初始选项卡,直到第一个签名者选中其中一个复选框)并且它们是强制签名的,但是一旦文档被签名,签名版本只显示正确的初始选项卡(仅其复选框已被选中)。在选中复选框之前是否可以隐藏初始选项卡?可以使这些初始选项卡不是“必需的”吗?

但我主要关心的是下一个签名者的依赖。到目前为止,我尝试将下一个签名者的初始选项卡绑定到第一个签名者的复选框,但没有成功。

这是代码:

var signer1 = new Signer()
{
    Email = recipient1Email,
    Name = recipient1Name,
    RecipientId = "1",
    RoutingOrder = "1",
    Tabs = new Tabs()
    {
        CheckboxTabs = new List<Checkbox>()
        {
            new Checkbox()
            {
                TabLabel = "Choice1",
                Selected = "false",
                DocumentId = "1",
                AnchorString = ConfigurationManager.AppSettings["Signer1_Choice1"]
            },
            new Checkbox()
            {
                TabLabel = "Choice2",
                Selected = "false",
                DocumentId = "1",
                AnchorString = ConfigurationManager.AppSettings["Signer1_Choice2"]
            }
        },
        InitialHereTabs = new List<InitialHere>()
        {
            new InitialHere()
            {
                ConditionalParentLabel = "Choice1",
                ConditionalParentValue = "On",
                Name = "signer1initials1",
                DocumentId = "1",
                RecipientId = "1",
                TabLabel = "Signer1Initials1",
                AnchorString = ConfigurationManager.AppSettings["Signer1_Choice1_Initials"]
            },
            new InitialHere()
            {
                ConditionalParentLabel = "Choice2",
                ConditionalParentValue = "On",
                Name = "signer1initials2",
                DocumentId = "1",
                RecipientId = "1",
                TabLabel = "Signer1Initials2",
                AnchorString = ConfigurationManager.AppSettings["Signer1_Choice2_Initials"]
            }
        }
    }
};

var signer2 = new Signer()
{
    Email = recipient2Email,
    Name = recipient2Name,
    RecipientId = "2",
    RoutingOrder = "2",
    Tabs = new Tabs()
    {
        InitialHereTabs = new List<InitialHere>()
        {
            new InitialHere()
            {
                Name = "signer2initials1",
                DocumentId = "1",
                RecipientId = "2",
                TabLabel = "Signer2Initials1",
                AnchorString = ConfigurationManager.AppSettings["Signer2_Choice1_Initials"],
                ConditionalParentLabel = "Choice1",
                ConditionalParentValue = "On"
            },
            new InitialHere()
            {
                Name = "signer2initials2",
                DocumentId = "1",
                RecipientId = "2",
                TabLabel = "Signer2Initials2",
                AnchorString = ConfigurationManager.AppSettings["Signer2_Choice2_Initials"],
                ConditionalParentLabel = "Choice2",
                ConditionalParentValue = "On"
            }
        }
    }
};

我最担心第一个签名者的选择会反映在下一个签名者中,所需的选项卡或显示/不显示选项卡问题不是很重要。

有人能帮我吗?也许我在这种方法上错了?不知道,这是我第一次使用 DocuSign SDK 和签名过程。

此外,我没有使用模板或 C# SDK 以外的任何其他东西。该文档由另一个应用程序生成,并且选项卡锚定到特定单词。

问候, 阿尔瓦罗

标签: c#docusignapi

解决方案


这种情况很复杂,需要额外的 API 调用,但可行。

  1. 创建并发送带有 2 个签名者的信封,并带有通知收件人事件收件人已签名/已完成此处为指南
  2. 一旦Signer1在信封上签名,您将收到通知
  3. 使用此端点获取信封签名者标签信息
  4. 基于签名者选择的后续步骤的逻辑
  5. 根据第 5 步更新您的信封

推荐阅读