Все шаблоны применяются к первому документу, несмотря на наличие нескольких объектов композитного шаблона - PullRequest
0 голосов
/ 06 августа 2020

Вот случай, который я пытаюсь решить с помощью подхода CompositeTemplates к созданию конвертов. Я хочу предоставить свой собственный документ для DocuSign и определить некоторые из моих собственных вкладок, а также использовать функцию шаблона DocuSign.

Пока что, когда я отправляю только один документ, он работает отлично, и я получаю то, что хочу : DocuSign, в котором есть как шаблон, который я применил, так и добавленные мной пользовательские вкладки. применяются только к первому документу (документу первого объекта композитного шаблона в массиве), а не к документу в соответствующем объекте композитного шаблона этого сервера. Мои встроенные шаблоны все еще правильно применяются к соответствующему документу.

Я неправильно использую составные шаблоны? Я скопировал код, использованный для создания композитных шаблонов ниже:

      const compositeTemplates = _.map(rawDocuments, rawDoc => {
        const serverTemplates = []

        if (rawDoc.templateId) {
          const serverTemplate = docusign.ServerTemplate.constructFromObject({
            sequence: '2',
            templateId: rawDoc.templateId
          })

          serverTemplates.push(serverTemplate)
        }

        return docusign.CompositeTemplate.constructFromObject({
          document: docusign.Document.constructFromObject(rawDoc),
          serverTemplates,
          inlineTemplates: [docusign.InlineTemplate.constructFromObject({
            sequence: '1',
            recipients: constructSigners(rawSigners, rawDoc)
          })]
        })
      })

Дополнительная информация:

  • Я использую два отдельных шаблона, и каждый шаблон отвечает только за один документ.
  • Я также заменяю документ шаблона сервера точно таким же документом (информация немного отличается, но имеет ту же структуру и количество страниц)
  • Запрос JSON выглядит так:
[
 {
   document: {
     documentBase64: '...'
     documentId: '1',
     fileExtension: 'pdf',
     name: 'test',
   },
   serverTemplates: [{
     sequence: '2',
     templateId: 'fee45537-2a77-46c0-ad68-d4ffa22ec763'
   }],
   inlineTemplates: [{
     sequence: '1',
     recipients: '...'
   }]
 },
 {
   document: {
     documentBase64: '...'
     documentId: '2',
     fileExtension: 'pdf',
     name: 'New',
   },
   serverTemplates: [{
     sequence: '2',
     templateId: 'b66272b2-038a-4071-aa77-08a5e635e470'
   }],
   inlineTemplates: [{
     sequence: '1',
     recipients: '...'
   }]
 }
]

1 Ответ

1 голос
/ 06 августа 2020

При использовании составных шаблонов DocumentId в каждом составном шаблоне должен совпадать с DocumentId в шаблоне сервера, чтобы заменить его.

Обратите внимание, что нет конфликта между повторяющимися идентификаторами из одного составного шаблона в другой - Идентификаторы получателей и документы меняют нумерацию при обработке вызова API.

...