在使用复合模板时,有没有一种方法可以控制呈现给签名者的文档的顺序?

Is there a way I could control the order of the documents presented to a signer when using composite templates?

在使用复合模板时,有什么方法可以控制呈现给签名者的文档的顺序吗? 例如,如果我有 3 个要发送的模板,并且我希望签名者首先看到(不一定要签名)一个特定的模板,我将如何设置它。 所有模板只有一个文档。 据我了解,服务器和内联模板的序列 属性 更多地与特定组合中的文档和选项卡的顺序有关,而不是与整个信封有关。 这是我现在拥有的 c# 代码(不完美,有点像初稿)。我有一些模板 ID 存储在字符串列表中,我循环遍历它们分配几乎随机的排序值,因为我只关心内联模板序列值是否高于服务器模板。 我想问的是,如果我有一个我想首先展示的模板文档,有没有办法做到这一点?它不必实现循环。我只想知道有没有办法

 List<CompositeTemplate> compositeTemplates = new List<CompositeTemplate>();
            
            Recipients recipientsServerTemplate = new Recipients();
            List<Signer> signers = new List<Signer>();
            List<CarbonCopy> carbonCopies = new List<CarbonCopy>();


        List<Text> textControlsInTemplate = SetTemplateFields();
       
        Tabs tabs = new Tabs
        {
            TextTabs = textControlsInTemplate
        };

        Signer signer1 = new Signer();
        signer1.Email = signerEmail;
        signer1.Name = signerName;
        signer1.RoleName = "signer";
        signer1.RecipientId = "1";
        signer1.Tabs = tabs;
        signers.Add(signer1);

       
        CarbonCopy cc1 = new CarbonCopy();
        cc1.Email = ccEmail;
        cc1.Name = ccName;
        cc1.RoleName = "cc";
        cc1.RecipientId = "2";
        carbonCopies.Add(cc1);

        recipientsServerTemplate.Signers = signers;
        recipientsServerTemplate.CarbonCopies = carbonCopies;

      
int i = 1;
            foreach (string templateId in templateIds)
            {
                List<ServerTemplate> ServerTemplates = new List<ServerTemplate>();
                List<InlineTemplate> InlineTemplates = new List<InlineTemplate>();
                CompositeTemplate CT = new CompositeTemplate
                {
                    CompositeTemplateId = i.ToString()
                };

                ServerTemplate ST = new ServerTemplate
                {
                    Sequence = i.ToString(),
                    TemplateId = templateId
                };

                InlineTemplate IT = new InlineTemplate
                {
                    Recipients = recipientsServerTemplate,
                    Sequence = (i+1).ToString()
                };
                
                InlineTemplates.Add(IT);
                ServerTemplates.Add(ST);
                CT.ServerTemplates = ServerTemplates;
                CT.InlineTemplates = InlineTemplates;
                compositeTemplates.Add(CT);
                
                i++;


               }

EnvelopeDefinition env = new EnvelopeDefinition
            {
                Status = "sent",
                CompositeTemplates = compositeTemplates
            };

假设每个服务器模板包含一个文档,序列号最小的复合模板应该首先显示其模板的文档。

如果序列号不起作用,则更改数组中复合模板项的顺序。请注意,信封定义的 compositeTemplates 属性采用 数组 复合模板对象。

我建议您首先使用 API Request Builder 来尝试排序。然后可以使用该工具生成匹配的 C# 代码。

这是一个 live example,其中一个服务器模板在一个信封中使用了两次。您可以轻松修改图表以使用两个不同的服务器模板。

Blog post about composite templates