具有docusign_rest的自定义模板字段

时间:2018-11-30 17:59:30

标签: ruby-on-rails docusignapi

我正在使用docusign rest gem创建和发送DocuSign信封。但是我在模板上设置要显示的自定义字段时遇到问题。我的模板上有2个签名者,两个签名者都有共同的字段,因此我似乎不得不设置每个自定义字段两次,因为DocuSign似乎不允许共享字段。

enter image description here

enter image description here

根据DocuSign API文档,这是我在设置信封时执行的API调用:

custom_fields = {
      textCustomFields: [
        {
          name: "host_address",
          value: "Testing Host Address",
          required: "true",
          show: "true",
        },
        {
          name: "host_civil_status",
          value: "Host Civil Status",
          required: "true",
          show: "true",
        },
        {
          name: "host_id_number",
          value: "123HOSTID",
          required: "true",
          show: "true",
        },
        {
          name: "host_tax_number",
          value: "123HOSTTAX",
          required: "true",
          show: "true",
        },
        {
          name: "nomad_address",
          value: "Testing Nomad Address",
          required: "true",
          show: "true",
        },
        {
          name: "nomad_civil_status",
          value: "Nomad Civil Status",
          required: "true",
          show: "true",
        },
        {
          name: "nomad_id_number",
          value: "123NOMADID",
          required: "true",
          show: "true",
        },
        {
          name: "nomad_tax_number",
          value: "123NOMADTAX",
          required: "true",
          show: "true",
        },
        {
          name: "property_addres",
          value: booking.listing.property.full_address,
          required: "true",
          show: "true",
        },
        {
          name: "property_address",
          value: booking.listing.property.full_address,
          required: "true",
          show: "true",
        },
        {
          name: "property_deposit",
          value: (booking.deposit * booking.price).to_s,
          required: "true",
          show: "true",
        },
        {
          name: "property_description",
          value: "Property Description",
          required: "true",
          show: "true",
        },
        {
          name: "property_start_date",
          value: booking.start_date.strftime("%d/%m/%Y"),
          required: "true",
          show: "true",
        },
        {
          name: "property_end_date",
          value: booking.end_date.strftime("%d/%m/%Y"),
          required: "true",
          show: "true",
        },
        {
          name: "property_stay_length",
          value: distance_of_time_in_words(booking.start_date, booking.end_date),
          required: "true",
          show: "true",
        },
        {
          name: "property_montly_rent",
          value: booking.price.to_s,
          required: "true",
          show: "true",
        },
      ]

    }
    @envelope = client.create_envelope_from_template(
      status: 'sent',
      email: {
        subject: "The test email subject envelope",
        body: "Envelope body content here"
      },
      template_id: "77xxxxxxxxxxxxxxxxxxxxxxxxxx",
      signers: [
        {
          embedded: true,
          name: booking.listing.user.name,
          email: booking.listing.user.email,
          role_name: 'Host',
        },
        {
          embedded: true,
          name: booking.user.name,
          email: booking.user.email,
          role_name: 'Nomad',
        }
      ],
      custom_fields: custom_fields
    )

1 个答案:

答案 0 :(得分:0)

不幸的是,DocuSign系统中有两个不同的对象,它们实际上具有相同的“自定义字段”名称。您使用的是错误的。

两个对象是:

1。元数据自定义数据字段

这些对象有两种形式:textCustomFields和listCustomFields。

可以在帐户级别设置这些对象,以要求每个(或某些)信封发送都必须在信封级别添加其他元数据。

还可以通过编程在信封级别设置对象。

这些“自定义字段”对签名者不可见。它们不是文档上可见的字段(选项卡)。它们与信封相关联,作为其他元数据。这些是您的代码示例使用的自定义字段的类型。

添加/列出在帐户级别设置的自定义字段:docs.

向信封中添加自定义元数据字段:使用信封定义的customFields属性。

2。自定义标签(字段)

自定义标签(在DocuSign Web工具中称为“字段”)是已自定义的DocuSign标签(文本标签,在此处签名的标签,日期标签等)的版本。然后,以后可以重新使用自定义的选项卡,而不必重新定制该选项卡的另一个实例。

这是您想要使用的内容。

要使用API​​列出它们,更新它们,等等:docs.

要在文档中使用它们

免责声明:我正在阅读文档,但没有尝试过。 尝试后添加评论:

  1. 您将需要customTabId作为自定义标签。使用CustomTabs::list API调用。
  2. 您还需要了解基本的标签类型:文本等。使用CustomTabs::list API调用返回的type值。
  3. 然后,在创建文档时,为每个获得自定义标签的收件人,照常创建标签,但是将customTabId作为标签定义的一部分。例如,请参阅Envelopes::create API调用中的text标签对象定义。