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

Я использую Salesforce with 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 faultcode=soap:Server faultactor= https://demo.docusign.net/api/3.0/dsapi.asmx

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

1 ответ

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