DocuSign Rest API для замены одного шаблона документа - PullRequest
0 голосов
/ 02 мая 2018

Я хотел бы знать, как заменить документ составными шаблонами. Шаблон имеет три документа и определяет информацию подписавшего. Несмотря на то, что я попытался заменить только 1-й документ, поля (теги) которого определены, как показано ниже, это не очень хорошо работает. Если порядковый номер inlineTemplates равен 1, а число serverTemplates равно 2, 1-й документ заменяется, как и ожидалось, но остальные два документа пропали. Если каждый порядковый номер меняется на противоположный, три документа, определенных в шаблоне, остаются в конверте, и новый документ не заменяется на 1-й документ.

Пока я ищу информацию на всем сайте stackoverview и на других сайтах, я пока не нашел никакого решения.

    {
    "compositeTemplates" : [
    {
                "serverTemplates": [
                    {
                        "sequence": "2",
                        "templateId": "cba8d3ae-3f0e-4329-9c7a-9da0e612f153"
                    }
                ],

                "inlineTemplates": [
                    {
                        "sequence": "1",
                        "documents": [  
                            {
                                "documentId": "1",
                                "name": "1Update.pdf",
                                "fileExtension" : "pdf",
                                "transformPdfFields" : "false",
                                "documentBase64":"<base64 content>

                            }
                            ],
                    }
                    ],


        }
        ],

        "status": "created"

}

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Если в шаблоне вашего сервера есть три документа, и вы хотите заменить первый документ на другой во время создания конверта, то DocuSign не сможет это сделать, так как DocuSign будет ожидать, что вы планируете заменить все документы, и он будет сгенерируйте ошибку и попросите вас отправить другие документы также во встроенном шаблоне.

Таким образом, решение для этого сценария заключается в том, что вам нужно создать шаблон с несколькими серверами, по крайней мере, в вашем случае два шаблона сервера, один шаблон сервера должен иметь документ, который вы хотите заменить, и другой шаблон сервера, который будет статическим, и он будет иди как есть в конверте. Как только это будет сделано, ваши составные шаблоны станут массивом из двух составных шаблонов. Первый составной шаблон будет иметь первый шаблон сервера и, используя InlineTemplate, или по узлу документа вы можете заменить шаблон документа сервера. И второй составной шаблон будет иметь только документы, поступающие из шаблонов второго сервера, с решением, которое ваш код может выглядеть следующим образом:

В приведенном ниже коде документ в шаблоне сервера d7697d56-e7ff-4a86-9b21-e98b81bd66c2 заменяется встроенным шаблоном или вы также можете передать его в узел документа, а f30d22b7-17da-4b61-af00-5f418f7916ec является шаблоном сервера если нет необходимости заменять какие-либо документы, они будут получены из шаблона сервера.

{
   "compositeTemplates": [
      {
         "compositeTemplateId":"1",
         "inlineTemplates": [
            {  
               "documents":[
                        {
                          "documentBase64": "<PDFBytes>",
                          "documentId": "1",
                          "fileExtension": "pdf",
                          "name": "Runtime Agreement"
                 }
               ],
               "recipients": {
                  "signers": [
                     {
                        "email": "email@gmail.com",
                        "name": "John Doe",
                        "recipientId": "1",
                        "roleName": "Signer1",
                        "routingOrder": "1"
                     }
                  ]
               },
               "sequence": "1"
            }
         ],
         "serverTemplates": [
            {
               "sequence": "2",
               "templateId": "d7697d56-e7ff-4a86-9b21-e98b81bd66c2"
            }
         ]
      },
      {
         "compositeTemplateId":"2",
         "inlineTemplates": [
            {  
               "recipients": {
                  "signers": [
                     {
                        "email": "email@gmail.com",
                        "name": "John Doe",
                        "recipientId": "1",
                        "roleName": "Signer1",
                        "routingOrder": "1"
                     }
                  ]
               },
               "sequence": "2"
            }
         ],
         "serverTemplates": [
            {
               "sequence": "1",
               "templateId": "f30d22b7-17da-4b61-af00-5f418f7916ec"
            }
         ]
      }
   ],
   "status": "sent"
}
0 голосов
/ 02 мая 2018

Вам необходимо использовать узел документа составного шаблона, который по умолчанию имеет последовательность «0», поэтому он использует pdf-байты документа по сравнению с шаблоном сервера или встроенные pdf-байты документов.

"compositeTemplates": [{
"serverTemplates": [{
"inlineTemplates": [{
"document": ....

Вот часть того, что вам нужно понять о порядковых номерах и физическом порядке. В составных шаблонах физический порядок отменяет «индекс / последовательность» для узла составного шаблона.

Индекс «sequence» - это внутренний ссылочный клей, но не порядок строк в модели в памяти.

Чем ниже последовательность: узел документа (не документы) между сервером, встроенным и документом, равным 0, - это то, как определяются «байты PDF / DOC», и чем выше порядковый номер, то функция, которая выигрывает aka doc vis в одном шаблоне, против другого или числа дней уведомления.

Кроме того, помните, что статус «создан» означает, что вы выполняете всю очистку для необходимых ролей, тегов и т. Д., А «отправлено» означает, что DocuSign удалит все неполные теги, поменяет документы и т. Д. Поэтому, как правило, он не отображает Конечный результат пока не выдаст "отправлено".

Помните, что вы можете добавить получателя «Блокировка (расширенная концепция)», чтобы вы могли «просмотреть» сообщение с результатом «отправлено» до того, как оно отправится клиенту. Просто нам «недоставленный» адрес электронной почты, который отскочит назад, затем выдаст представление отправителя, чтобы увидеть результат, затем «заблокирует / исправит / разблокирует» конверт, удалив «блокирующего» пользователя, если вам нужно выполнить проверку в реальном производственном сценарии .

...