Docusign:为签名者分配特定表单字段

时间:2016-12-26 02:48:45

标签: docusignapi

我能够探索SOAP API文档中解释的大多数方法,并且非常感谢您详细介绍每种方法。

我在查询中将特定表单字段分配给每个收件人,作为createandSendEnvelope请求的一部分。例如,如下图所示,我知道每个签名者的表格字段。

收件人1字段:S1_Company,S1_Location,S1_SignHere,S1_PrintHere& S1_DateHere
收件人2字段:S2_Company,S2_Location,S2_SignHere,S2_PrintHere& S2_DateHere

我尝试了锚标签但是无法使用上面提到的表单字段。我正在看的逻辑是一个表单的所有表单字段,必须分配给收件人以便向签名者输入数据是基于数据库中加载的静态数据驱动的,并且在信封完成时我应该能够读取分配给每个收件人的每个字段中输入的数据应该是可检索的。即,我所看到的基本好处是通过使用RequestEnvelopeWithDocumentFields,我应该能够读取S1_Company中的收件人输入的值,S1_Location等表单字段也可以存储在我的数据库中,用于审计目的并与之同步Docusign数据。

你在这方面的帮助大大赞赏!!如果您需要此查询的任何其他信息,请与我们联系

enter image description here

附加有效负载

<?xml version="1.0" encoding="utf-16" ?>
<arrayofcompositetemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<compositetemplate>
    <inlinetemplates xmlns="http://www.docusign.net/API/3.0">
        <inlinetemplate>
            <sequence>1</sequence>
            <envelope>
                <accountid>4af47e96-b342-45f2-9fcb-ab3c031780f1</accountid>
                <recipients>
                    <recipient>
                        <id>1</id>
                        <username>Signer 1</username>
                        <email>*******@*****.com</email>
                        <type>Signer</type>
                        <accesscode xsi:nil="true" />
                    </recipient>
                </recipients>
                <tabs>
                    <tab>
                        <recipientid>1</recipientid>
                        <type>DateSigned</type>
                        <tablabel>Client1_DocuSignDateSigned</tablabel>
                    </tab>
                    <tab>
                        <recipientid>1</recipientid>
                        <type>SignHere</type>
                        <tablabel>Client1_DocuSignSignHere</tablabel>
                    </tab>
                    <tab>
                        <recipientid>1</recipientid>
                        <type>FullName</type>
                        <tablabel>Client1_DocuSignFullName</tablabel>
                    </tab>
                </tabs>
            </envelope>
        </inlinetemplate>
    </inlinetemplates>
    <document xmlns="http://www.docusign.net/API/3.0">
        <id>1</id>
        <name>DocumentOne</name>
        <pdfbytes>JVBERi0x</pdfbytes>
        <fileextension>.pdf</fileextension>
    </document>
</compositetemplate>
</arrayofcompositetemplate>

1 个答案:

答案 0 :(得分:4)

PDF表单转换比使用锚点更有效。要利用此功能,您必须使用CreateEnvelopeFromTemplates或CreateEnvelopeFromTemplatesAndForms。第一个是遗留的,仅限于将所有字段(我们的API中的“标签”)分配给一个收件人。 CreateEnvelopeFromTemplatesAndForms(CEFTAF)是围绕复合模板构建的。我强烈建议在SOAP和REST中围绕复合模板组合构建所有解决方案。它为您提供了完整的API功能,因此您可以扩展集成,而无需完全重新设计信封组件。

CompositeTemplates本身不是模板,而是信封构造过程的“贡献单位”。它们可以包含一个或多个模板,通常是服务器模板(存储在DocuSign中)和内联模板(通过代码提供)。它们还支持PDF表单转换以及通配符Tab匹配。

以下是一个例子:

<CompositeTemplate>
    <Document>
        <ID>1</ID>
        <Name>Application form</Name>
        <PDFBytes>JVBERi0xLjYNJeL...(snipped)</PDFBytes>
        <TransformPdfFields>true</TransformPdfFields>
        <FileExtension>pdf</FileExtension>
    </Document>

    <InlineTemplates>
        <InlineTemplate>
            <Sequence>1</Sequence>
            <Envelope>
                <AccountId>87312c39-f11d-4cdf-a7de-905cfbe774e6</AccountId>
                <Recipients>
                    <!-- the "S1" recipient -->
                    <Recipient>
                        <ID>1</ID>
                        <UserName>Iwana Getthat</UserName>
                        <Email>iwana@example.com</Email>
                        <Type>Signer</Type>
                        <RoutingOrder>1</RoutingOrder>
                        <RoleName>S1</RoleName>
                        <!-- (option)<DefaultRecipient>true</DefaultRecipient> -->
                    </Recipient>
                    <!-- the "S2" recipient -->
                    <Recipient>
                        <ID>2</ID>
                        <UserName>Ice Screen</UserName>
                        <Email>ice@example.com</Email>
                        <Type>Signer</Type>
                        <RoutingOrder>2</RoutingOrder>
                        <RoleName>Approver</RoleName>
                    </Recipient>
                </Recipients>
                <Tabs>
                    <!-- Tabs for Recipient 1 -->
                    <Tab>
                        <RecipientID>1</RecipientID>
                        <TabLabel>S1_\*</TabLabel>
                        <Type>SignHere</Type>
                    </Tab>
                    <Tab>
                        <RecipientID>1</RecipientID>
                        <TabLabel>S1_\*</TabLabel>
                        <Type>DateSigned</Type>
                    </Tab>
                    <Tab>
                        <RecipientID>1</RecipientID>
                        <TabLabel>S1_FullName\*</TabLabel>
                        <Type>FullName</Type>
                    </Tab>
                    <Tab>
                        <RecipientID>1</RecipientID>
                        <TabLabel>S1_Email\*</TabLabel>
                        <Type>Custom</Type>
                        <CustomTabValidationPattern>^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$</CustomTabValidationPattern>
                        <CustomTabRequired>true</CustomTabRequired>
                    </Tab>
                    <Tab>
                        <!-- Catch all for all other CustomTab types not covered above -->
                        <RecipientID>1</RecipientID>
                        <TabLabel>S1_\*</TabLabel>
                        <Type>Custom</Type>
                        <CustomTabRequired>true</CustomTabRequired>
                    </Tab>
                    <!-- Tabs for Recipient 2 -->
                    <Tab>
                        <RecipientID>2</RecipientID>
                        <TabLabel>S2_\*</TabLabel>
                        <Type>SignHere</Type>
                    </Tab>
                    <Tab>
                        <RecipientID>2</RecipientID>
                        <TabLabel>S2_\*</TabLabel>
                        <Type>DateSigned</Type>
                    </Tab>
                </Tabs>
            </Envelope>
        </InlineTemplate>
    </InlineTemplates>
</CompositeTemplate>

注意方便地使用“*”作为通配符,匹配S1_ {anything}的表单字段名称,该名称导致Tab + TabLabel为S1_ {anything}以分配给“S1”相关收件人。