Я пытаюсь использовать существующий шаблон в Docusign, чтобы отправить конверт для подписи.Тем не менее, я получаю сообщение об ошибке RECIPIENTS_NOT_PROVIDED
, хотя я использую роли шаблонов для установки получателей.
Если я вместо этого пытаюсь добавить подписчиков, я получаю ENVELOPE_IS_INCOMPLETE
, я полагаю, потому что он не использует шаблон.
Я знаю, что учетные данные в порядке, и я могу создать новый конверт и добавить вкладки для входа.Но я просто не могу понять, как использовать шаблон.Я попытался эмулировать пример node.js
здесь: https://developers.docusign.com/esign-rest-api/code-examples/request-a-signature-via-email-using-a-template, делая код аналогичным, но он не работал.
# Create the envelope request
envelope = DocuSign_eSign::EnvelopeDefinition.new({
emailSubject: "my subject", # BTW the documentation seems incorrect on this, it's camel-cased not underscore separated
template_id: ENV['DS_TEMPLATE_ID'] || "98..........f"
})
role = DocuSign_eSign::TemplateRole.new({
role_name: 'MyRole', # same string as defined in the template via web gui
name: DSConfig.signer_name,
email: DSConfig.signer_email
})
envelope.template_roles = [role];
envelope.status = "sent"
envelope_api = DocuSign_eSign::EnvelopesApi.new(@@api_client)
result = envelope_api.create_envelope(@@account_id, envelope)
Должен создавать новый конверт, но дает мне:
message: {
"errorCode": "RECIPIENTS_NOT_PROVIDED",
"message": "No recipients were found in the request."
}
Надеюсь, кто-то может помочь, там не так много информации об использовании рубина.
РЕДАКТИРОВАТЬ: После долгих экспериментов и копаний в коде драгоценного камня, кажется, документация невернаособенно в отношении camelCase против подчеркивания.Вот код, который действительно работал.Надеюсь, что это может помочь большему количеству людей!
# Create the envelope request
envelope = DocuSign_eSign::EnvelopeDefinition.new({
emailSubject: "my subject",
emailBlurb: "Some Text for email body",
templateId: ENV['DS_TEMPLATE_ID'] || "98..........f"
})
role = DocuSign_eSign::TemplateRole.new({
roleName: 'MyRole', # same string as defined in the template via web gui
name: DSConfig.signer_name,
email: DSConfig.signer_email
})
text = [
DocuSign_eSign::Text.new({
tabLabel: 'texttabname', # these should match the template
name: 'texttabname',
value: "222.222.222-22"
})]
tabs = DocuSign_eSign::Tabs.new
tabs.text_tabs = text
role.tabs = tabs
envelope.template_roles = [role];
envelope.status = "sent"
envelope_api = DocuSign_eSign::EnvelopesApi.new(@@api_client)
result = envelope_api.create_envelope(@@account_id, envelope)
И вуаля!При этом фактически использовался шаблон, отправлялся его подписавшему (в качестве его роли) и предварительно заполнялись текстовые вкладки.Уф!Основная трудность здесь заключалась в том, что документация (https://www.rubydoc.info/github/docusign/docusign-ruby-client/DocuSign_eSign) - все в имени, отделенном подчеркиванием, тогда как на практике это верблюжий случай. Я посмотрел на запросы REST, которые он генерировал, и выяснил, что данные не заполняются.