Ошибка SOAP при использовании DocuSign API с Salesforce для создания конвертов с шаблонами

Я использую Salesforce с DocuSign, чтобы попытаться создать конверт с помощью шаблонов.

    DocuSignAPI.EnvelopeTemplates templates = soapService.requestTemplates(accountId, false);
    String templateId = templates.EnvelopeTemplateDefinition[0].TemplateID;

    DocuSignAPI.EnvelopeTemplate template = soapService.requestTemplate(templateId, false);

    DocuSignAPI.EnvelopeInformation envelopeInformation = new DocuSignAPI.EnvelopeInformation();
    envelopeInformation.Subject = 'XXXXXXXXXXX';
    envelopeInformation.AccountId = accountId;
    envelopeInformation.EmailBlurb = 'XXXXXXXXXXXXX';

    DocuSignAPI.TemplateReference templateReference = new DocuSignAPI.TemplateReference();
    templateReference.RoleAssignments = new DocuSignAPI.ArrayOfTemplateReferenceRoleAssignment();
    templateReference.Template = template.EnvelopeTemplateDefinition.TemplateID;
    templateReference.TemplateLocation = 'Server';

    DocuSignAPI.Recipient recipient = new DocuSignAPI.Recipient();
    recipient.ID = currentRecipientIndex + 1;
    recipient.Type_x = 'Signer';
    recipient.Email = 'XXXXXXXXXXXXXXXX';
    recipient.UserName = 'XXXXXXXXXXXXXXXXX';
    recipient.RoutingOrder = 1;

    DocuSignAPI.ArrayOfRecipient1 recipients = new DocuSignAPI.ArrayOfRecipient1();
    recipients.Recipient = new DocuSignAPI.Recipient[1];
    recipients.Recipient.add(recipient);

    DocuSignAPI.TemplateReferenceRoleAssignment trra = new DocuSignAPI.TemplateReferenceRoleAssignment();
    trra.RoleName='Stake holder';
    trra.RecipientID = recipient.ID;

    templateReference.RoleAssignments.RoleAssignment = new DocuSignAPI.TemplateReferenceRoleAssignment[1];
    templateReference.RoleAssignments.RoleAssignment.add(trra);

    DocuSignAPI.ArrayOfTemplateReference arrayOfTemplateReference = new DocuSignAPI.ArrayOfTemplateReference();
    arrayOfTemplateReference.TemplateReference = new DocuSignAPI.TemplateReference[1];
    arrayOfTemplateReference.TemplateReference.add(templateReference);

    DocuSignAPI.EnvelopeStatus status = soapService.createEnvelopeFromTemplates(arrayOfTemplateReference, recipients, envelopeInformation, true);

Однако при запуске кода я получаю следующую ошибку:

Ошибка вызова веб-службы: WebService вернул ошибку SOAP: Unspecified_Error errorcode=soap: faultactor сервера = https://demo.docusign.net/api/3.0/dsapi.asmx

И это ссылается на DocuSignAPI, где вызывается WebServiceCallout. Учитывая двусмысленность ошибки, я был бы признателен за любые мысли о том, что может быть причиной этого.

1 ответ

Решение

В качестве обновления к этому посту мне удалось найти ошибку. Индексирование для Apex начинается с 0, а не с 1 (в отличие от MatLab, который вызвал мое замешательство). Поскольку я начинал с индекса 1, XML-запрос передавал нулевые значения по 0-му индексу, вызывая ошибку. Начиная с 0, удалил нулевые значения из XML, и запрос прошел.

Другие вопросы по тегам