2016-12-02 8 views
0

Я пытаюсь отправить вложение (запись имеет одно вложение) в запись о возможностях через API Apex и Docusign «CreateAndSendEnvelope».Не удается отправить вложение - Salesforce Docusign API

Но я получаю эту ошибку "DocuSign EnvelopeId: Exception - System.CalloutException:. Веб-служба выноски не удалось: WebService возвратил SOAP Fault: Ошибка при обработке тега якорной Invalid документ faultcode = мыло: Клиент faultactor = https://demo.docusign.net/api/3.0/dsapi.asmx "

Ниже приведен фрагмент кода.

// Render the contract 
     System.debug('Rendering the contract'); 
     PageReference pageRef = new PageReference('/apex/RenderContract'); 
     pageRef.getParameters().put('id',contract.Id); 

     //Blob pdfBlob = pageRef.getContent();  
     Attachment att = [SELECT Id, Name, Body, ContentType FROM Attachment WHERE Parentid = :contract.Id LIMIT 1]; 
     Blob pdfBlob = att.Body; 


     // Document 
     DocuSignAPI.Document document = new DocuSignAPI.Document(); 
     document.ID = 1; 
     document.pdfBytes = EncodingUtil.base64Encode(pdfBlob); 
     document.Name = 'Contract'; 
     document.FileExtension = 'pdf'; 
     envelope.Documents = new DocuSignAPI.ArrayOfDocument(); 
     envelope.Documents.Document = new DocuSignAPI.Document[1]; 
     envelope.Documents.Document[0] = document; 

     // Recipient 
     System.debug('getting the contact'); 
     Contact contact = [SELECT email, FirstName, LastName 
      from Contact where id = :contract.CustomerSignedId]; 

     DocuSignAPI.Recipient recipient = new DocuSignAPI.Recipient(); 
     recipient.ID = 1; 
     recipient.Type_x = 'Signer'; 
     recipient.RoutingOrder = 1; 
     recipient.Email = contact.Email; 
     recipient.UserName = contact.FirstName + ' ' + contact.LastName; 

     // This setting seems required or you see the error: 
     // "The string '' is not a valid Boolean value. 
     // at System.Xml.XmlConvert.ToBoolean(String s)" 
     recipient.RequireIDLookup = false;  

     envelope.Recipients = new DocuSignAPI.ArrayOfRecipient(); 
     envelope.Recipients.Recipient = new DocuSignAPI.Recipient[1]; 
     envelope.Recipients.Recipient[0] = recipient; 

     // Tab 
     DocuSignAPI.Tab tab1 = new DocuSignAPI.Tab(); 
     tab1.Type_x = 'SignHere'; 
     tab1.RecipientID = 1; 
     tab1.DocumentID = 1; 
     tab1.AnchorTabItem = new DocuSignAPI.AnchorTab(); 
     tab1.AnchorTabItem.AnchorTabString = 'By:'; 


     DocuSignAPI.Tab tab2 = new DocuSignAPI.Tab(); 
     tab2.Type_x = 'DateSigned'; 
     tab2.RecipientID = 1; 
     tab2.DocumentID = 1; 
     tab2.AnchorTabItem = new DocuSignAPI.AnchorTab(); 
     tab2.AnchorTabItem.AnchorTabString = 'Date Signed:'; 

     envelope.Tabs = new DocuSignAPI.ArrayOfTab(); 
     envelope.Tabs.Tab = new DocuSignAPI.Tab[2]; 
     envelope.Tabs.Tab[0] = tab1;   
     envelope.Tabs.Tab[1] = tab2;   

     System.debug('Calling the API'); 
     try { 
      DocuSignAPI.EnvelopeStatus es 
      = dsApiSend.CreateAndSendEnvelope(envelope); 
      envelopeId = es.EnvelopeID; 
     } catch (CalloutException e) { 
      System.debug('Exception - ' + e); 
      envelopeId = 'Exception - ' + e; 
     } 

Любые идеи, как преодолеть эту ошибку?

Спасибо.

+0

На каком сервере ваша учетная запись docusign (это похоже на демоверсию, но просто двойная проверка)? когда вы начали видеть эту ошибку? – Andrew

+0

это демонстрационный сервер .. я видел эту ошибку за один час назад. Сначала я пробовал код по этой ссылке: [link] (http://developer.force.com/cookbook/recipe/accessing-docusign-api- от-salesforcecom-to-send-contract-for-esignatures). И он отлично работал на рендеринг всей записи в формате pdf ... но теперь я попытался отправить вложения только вместо целой записи .. я начал получать эту ошибку. Любые входы pls..tnx – visu

ответ

0

оригинального плакат Комментарий (OP), составляет

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

Так что я предполагаю, что запрос на конверт имеет проблему с документом.

Лучший способ отладки: посмотреть, что отправляется на платформу DocuSign.

Пробуйте beta API logger или regular logger. Затем добавьте журнал на свой вопрос редактирование на ваш вопрос.

+0

Привет, я скачал файл журнала и может увидеть 9 файлов, созданных с именами, 00_ok_Getusersignature, 01_notfound_getuserprofileimage, 02_OK_getaccountsettings, 03_Ok_Getusersettings, 04_OK_getusersignatures, 05_Ok_Getuserprofile, 06_Ok_ExecuteloggedApiBusinessLogic, сервер error_Createandsendenvelope 07_Internal, 08_Ok_Updateaccountsettigns. Пожалуйста, дайте мне знать, если информация о журнале требуется для любого из этих файлов, чтобы проверить это дальше. Спасибо – visu

+0

Я решил это самостоятельно .. document.FileExtension = 'pdf'; .. на самом деле я передаю документ Word, поэтому я изменил document.FileExtension = 'pdf' в 'docx'. он работает отлично. Спасибо, ... – visu

+0

Молодцы. Благодарим вас за использование DocuSign. –

 Смежные вопросы

  • Нет связанных вопросов^_^