Docusignapi DocuSign API-以编程方式指定路由顺序时已删除角色

Docusignapi DocuSign API-以编程方式指定路由顺序时已删除角色,docusignapi,docusigncompositetmplts,Docusignapi,Docusigncompositetmplts,我们需要在使用SDK创建信封时指定路由顺序。路由订单可能因信封而异 遗憾的是,在创建信封期间以编程方式指定路由顺序时,角色似乎被删除或未正确处理。这将在第一次签名后为每个签名者带来“自由形式”的签名体验 在这个示例中,我有一个服务器模板,它有3个角色:买方、买方和卖方。 收件人的发送顺序因信封而异。我已将签名者设置为接收电子邮件,并启用了嵌入式签名。路由顺序和第一个签名者签名过程按预期工作,但每个后续签名者都有一个自由形式的签名体验(他们在其中添加自己的选项卡)。该角色似乎正在被删除或未正确处理

我们需要在使用SDK创建信封时指定路由顺序。路由订单可能因信封而异

遗憾的是,在创建信封期间以编程方式指定路由顺序时,角色似乎被删除或未正确处理。这将在第一次签名后为每个签名者带来“自由形式”的签名体验

在这个示例中,我有一个服务器模板,它有3个角色:买方、买方和卖方。 收件人的发送顺序因信封而异。我已将签名者设置为接收电子邮件,并启用了嵌入式签名。路由顺序和第一个签名者签名过程按预期工作,但每个后续签名者都有一个自由形式的签名体验(他们在其中添加自己的选项卡)。该角色似乎正在被删除或未正确处理

env.compositeTemplates = [
            {
                compositeTemplateId: 1,
                serverTemplates: [
                    {
                        sequence: 1,
                        templateId: '1234',
                    }
                ],
                inlineTemplates: [
                    {
                        sequence: 2,
                        recipients: {
                            {
                                email: "1@email.com",
                                name: "Person One",
                                clientUserId: 1000,
                                recipientId: 1,
                                routingOrder: 3, //this can vary for each envelope
                                roleName: "Buyer",
                                tabs: { ... },
                                embeddedRecipientStartURL: 'SIGN_AT_DOCUSIGN'
                            },
                            {
                                email: "2@email.com",
                                name: "Person Two",
                                clientUserId: 1001,
                                recipientId: 2,
                                routingOrder: 2, //this can vary for each envelope
                                roleName: "CoBuyer",
                                tabs: { ... },
                                embeddedRecipientStartURL: 'SIGN_AT_DOCUSIGN'
                            },
                            {
                                email: "3@email.com",
                                name: "Person Three",
                                clientUserId: 1002,
                                recipientId: 3,
                                routingOrder: 1, //this can vary for each envelope
                                roleName: "Seller",
                                tabs: { ... },
                                embeddedRecipientStartURL: 'SIGN_AT_DOCUSIGN'
                            },
                        }
                    },
                ]
            },
        ];
在DocuSign后端,第一个签名者之后的后续签名者将不会有他们的角色选项卡,除非我在模板中指定签名顺序,并且在通过SDK Envelopes::createEnvelope以编程方式生成信封时以完全相同的路由顺序传递。如果我没有指定签名顺序签名顺序与模板中的不同,则第一次签名后的后续签名者将有一次自由形式的签名体验,无需选项卡数据

这是可行的(如果通过SDK创建信封时路由顺序匹配)-如果路由顺序不同,则对于第一次之后的任何后续签名者都不起作用:

这不适用于第一次签名后的任何签名者:


是否有人可以建议如何进行此操作?

不幸的是,复合模板不能用于更新角色的路由顺序

您的信封:创建调用可以创建整个信封对象,而不是使用模板。然后可以通过编程方式设置路由顺序

补充 回复:OP的评论(见下文)

您将信封创建为草稿,然后添加到其中的建议将起作用。但通常更好的方法是用一个信封创建整个信封:createcall。在一次通话中,您可以包括一个或多个文档、收件人及其选项卡(字段)等

然后发送信封(
状态:“已发送”

唯一的问题是文档的总大小超过25MB。在这种情况下,您需要一次添加一个文档

下面是一个创建信封对象的示例,其中包括三个文档、一个签名者和抄送接收者。请参阅其他SDK语言中的示例2


也欢迎您直接调用API。大约一半的开发人员使用SDK,另一半直接调用API。

嗨,Larry,谢谢您的回复。你是说我们应该先使用SDK创建信封作为草稿吗。使用信封::updateRecipients更新路由顺序,然后发送信封?这样行吗?请参阅更新的答案